This is a responsive and user-friendly web application where trainees at CodeYourFuture(CYF) can log in with their GitHub account to check their progress, including their GitHub PRs linked to CYF coursework, Codewar rank, and Codewar point.
The data will be compared with a specific algorithm behind the scenes (according to the rule set by CYF on calculating trainees' milestones) and a milestone status will be returned to indicate where the trainee is at - if they are beyond/at/behind the milestone. All trainees' data will be stored in the database.
- React.js
- JavaScript
- CSS
- Express.js
- Node.js
- Postgresql
- OAuth
Various scripts are provided in the package file, but many are helpers for other scripts; here are the ones you'll commonly use:
dev
: starts the frontend and backend in dev mode, with file watching (note that the backend runs on port 3100, and the frontend is proxied to it).lint
: runs ESLint and Prettier against all the code in the project.serve
: builds and starts the app in production mode locally.
While running the dev mode using npm run dev
, you can attach the Node debugger to the server process via port 9229.
If you're using VS Code, a debugging configuration is provided for this.
There is also a VS Code debugging configuration for the Chrome debugger, which requires the recommended Chrome extension, for debugging the client application.
If the project handles any kind of Personally Identifiable Information (PII) then make sure the following principles are followed:
- Only collect strictly necessary PII;
- Access to PII should be as restricted as possible;
- Access to PII should only be possible after authentication. Authentication must be done via GitHub. Ad hoc authentication solutions are not allowed;
- Admins must be able to control who has access to the platform and at which levels using only GitHub groups;
- There must be an audit mechanism in place. It is required by law to know who accessed what and when;
- Code must be reviewed by senior developers before being pushed to production;
- APIs must be secure. Make sure we are not handling security on the frontend.
See the guidance in the wiki.
This project is licensed under the MIT