/hack-points

A bounty system where users can create and complete tasks to win points.

Primary LanguageJavaScriptMIT LicenseMIT

Hack Points

A bounty system where users can create and complete tasks to win points. All users' points are added together to make up the Groups total points.

Project setup:

  • Download mongodb
  • start mongod --dbpath=<path to data> make sure this continues to run in the background
  • navigate to project root and run npm install to install dependencies
  • create a .env to store environmental variables:

    GITHUB_KEY=

    GITHUB_SECRET=

    SLACK_KEY=

    SLACK_SECRET=

    MONGO_URI=mongodb://localhost:27017/hackerpoints

    PORT=8080

    APP_URL=http://localhost:8080/

You will need to setup an oauth token with slack

  • run npm run dev to spin up the webserver

TODO:

Fix user Auth -- maybe add local auth Create key based api on /api/v1/users/ and /api/v1/bounties/ Create workflow for creation/approval/completion of a bounty Create view for bounties Update manifest.json

Flow:

A user creates a bounty. Bounties get posted to a board of all bounties When a Bounty is completed, the user who completed it gains points from the bounty

Feature Goals:

Total Points Bar for the entire group is visible at all times. Drag and Drop bounties to change the bounties state/status Leaderboard The group can set goals for when a milestone is reached Request training buttons Badges -- e.g. qualified laser user

API

/api/v1/users/ -- returns all users

/api/v1/users/:userid -- returns specific user based on id

/api/v1/users/currentUser -- returns information about current logged on users

/api/v1/users/totalPoints -- returns the totalPoints of all users

/api/v1/bounties/ -- returns all bounties

/api/v1/bounties/:bountyid -- returns specific bounty based on id