Pinpoint is a membership application management service geared towards helping university clubs and hackathons decide on the best applicants out of their pool of candidates.
See the project outline and minimum viable product in our wiki.
The project is structured as follows:
client
is the JavaScript client for the user-facing Pinpoint API.core
is the primary Pinpoint gRPC-based service, and manages application logic and the database.frontend
is the Pinpoint web application.gateway
is an HTTP server that exposes Pinpoint functionality via a RESTful API.grpc
is a Golang package for Pinpoint Core's gRPC service, generated from protobuf definitions.protobuf
contains protobuf definitions for Pinpoint Core's gRPC service.utils
is a Golang package that contains utility functions shared bycore
andgateway
.
To get started, make sure you have the following installed:
- Golang 1.11+
- Node.js 8.12+
- protobuf v3.6+ and the Golang plugin
- Docker CE and docker-compose
To fetch the codebase, use go get
:
$> go get github.com/ubclaunchpad/pinpoint
You will need dep and npm installed.
$> make deps
Run the following commands in two separate shell sessions:
$> make core
$> make gateway
gateway
and core
uses the Golang API within the grpc
directory to communicate. If you make changes to the protobuf definitions in the protobuf
directories, you will need to update this API:
$> make proto
You will need protobuf v3.6+ and the Golang plugin installed.