This Project serves the backend APIs required for Real Dev Squad web projects. This project is built in Express.js.
- The application uses node-config(documentation) for managing config.
- Create a new file:
config/local.js
. Override the required config values fromconfig/development.js
andconfig/default.js
intoconfig/local.js
. - Register the application for GitHub OAuth to get the
clientId
andclientSecret
. Add the callback URL ashttp://<HOSTNAME>:<PORT>/auth/github/callback
- Create an application on FireStore and generate a service file. Add the service file credentials in the local config (or your env variables) as a string (don't forget to escape the newline in private_key)
- For running the project locally, Firebase Local Emulator Suite can also be used instead of using the remote DB. Steps for setting it up: CONTRIBUTING.md - Using Firebase Emulator Locally
Please install yarn
and volta
To install Volta, please follow the process
Install all the packages using the following command:
yarn
This command should be successful, before moving to development.
yarn validate-setup
Head over to TDD Tests Files List, and add the list of your new (or old) test files.
You can use wildcard '*' in the filepaths
Run TDD in watch mode. Exiting this command will print the coverage report. Try to achieve 100% coverage.
yarn tdd:watch
yarn dev
- Install packages
yarn
- Run tests
yarn run test
- Prune dev dependencies
npm prune --production
- Run start command (with port information)
yarn start
Note: These are handled automatically behind the scene when pushing to Heroku
- View the RDS API documentation: Real Dev Squad API
- You can also run the server and navigate to
http://<HOSTNAME>:<PORT>/api-docs
to view the API documentation. - You can import the file API Schema to Postman or SwaggerHub.
- If any API changes have been made:
- Write JS Doc on top of your routes using YAML based annotations in OPEN API 3.0 format.
- Run
yarn run generate-api-schema
to generate the API schema. A filepublic/apiSchema.json
will be created/updated.
Check out our video on how to setup the backend here: Wiki link
Read more about contributing to the project: CONTRIBUTING