Skip to content
This repository has been archived by the owner on May 29, 2020. It is now read-only.
/ pinpoint Public archive

๐Ÿ“Š Versatile applicant management for any organization

License

Notifications You must be signed in to change notification settings

ubclaunchpad/pinpoint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“Š pinpoint Build Status codecov Go Report Card

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.

Project Structure

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.
  • protobuf contains protobuf definitions for Pinpoint Core's gRPC service as well as the generated Golang API.
  • utils is a Golang package that contains utility functions shared by core and gateway.

Development

To get started, make sure you have the following installed:

To fetch the codebase, use go get:

$> go get github.com/ubclaunchpad/pinpoint

Installing Dependencies

You will need dep and npm installed.

$> make deps

Makefile

The Makefile offers a lot of useful commands for development. Run make help to see the commands that are available.

Building

Golang Binaries

$> make pinpoint-core
$> make pinpoint-gateway

Web Application

$> make web

Spinning up Services Locally

External dependencies, such as the database, can be started and stopped using docker-compose, which leverages available Docker containers:

$> make testenv       # start up service containers
$> make testenv-stop  # stop containers
$> make clean         # remove containers

Pinpoint services can be started up using the following commands in two separate shell sessions:

$> make core
$> make gateway

By default, provided certificates in dev/certs are used. These were generated using certstrap.

To run enable the local monitoring suite:

$> make monitoring
$> make core FLAGS=--logpath=tmp/core.log
$> make gateway FLAGS=--logpath=tmp/gateway.log

Updating the Golang gRPC API

gateway and core uses the Golang API within the protobuf directory to communicate. If you make changes to the protobuf definitions in the protobuf directories, you will need to update this API:

$> make proto  # generate new Golang API
$> make check  # ensure everything compiles

You will need protobuf v3.6+ and the Golang plugin installed.

The script also uses counterfeiter to generate mocks.

About

๐Ÿ“Š Versatile applicant management for any organization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published