$ npm install
We are using Firebase cloud fire store for our database.
To setup a connection to the database:
- Have a look in your project slack channel for a pinned JSON file called
firebase-credentials.json
. - Create a
firebase-credentials.json
file in the root directory of this repository and copy the contents from the file in the slack channel - Create a
.env
file in the root directory of the repository and putPROJECT_NAME=bridge-slackbot-8
andSLACK_AUTH_TOKEN={please ask any teammate to get the slack token}
; if you would like to test the frond-end app locally with this back-end app, you will also need to addNODE_ENV=development
to send requests to our backend server in test - Run
yarn start:local
and if everything is running smoothly you should see no errors - To test your server is running correctly, go to
http://localhost:8081/health
in your browser. If you see{ ok: 'OK' }
then everything is running as expected. If you're not seeing this, reach out to your tech lead or mentor over slack to help you debug!
To query the database you will need to require
the db
instance that is exported from db/index.js
. You can use the firebase docs and have a look under the node.js tab for examples.
$ npm run start:local
$ npm start
|-api
|-db
|-middleware
|-routes
|---health
|-utils
This is where you add new routes, see the example health
route.
This is where the Firebase connection is configured. To query the database you will need to require
the db
instance that is exported from db/index.js
.
Middleware functions are functions that have access to the request object (req
), the response object (res
), and the next middleware function in the application’s request-response cycle.
Middleware can be at the application level or at the router level. You won't be interacting with this folder much.
This is where all the logic for your endpoints will live. You should make a new folder under routes
for each set of endpoints you will write, similar to the health
folder that exists as an example.
This is a multi-purpose folder for any extra utility functions that you might want to reuse throughout your app.
- Clone your git repos directly (do not fork!)
- Follow the setup instructions for each repo in the respective READMEs
- Run the app
- Pick a feature / part of a feature from your project board and assign it to yourself. Move the ticket into in progress and make sure your whole team knows you are working on it.
- Pull the most recent version of master and create a branch off it
- For a feature:
feat/<name of your feature>
- For a bug:
bug/<name of bug>
- For a chore:
chore/<name of chore>
- For a feature:
- Work on your ticket
- Once you are ready to get some feedback on your code, push your branch
git push origin <name of your branch>
- Go to GitHub and create a Pull Request
- The title should be formatted as
[Feature/Bug/Chore][Ticket #] Title of what you did
- In the description make sure to link to the ticket and include any relevant screenshots
- Describe all the changes you have made
- The title should be formatted as
- Assign your team members for review, once you have one approval you can merge your code
- Your code will be automatically deployed to the development environment
- Break your features into small chunks of work
- Try to keep PRs as small and single purpose as possible
- Use your class time to break up work, review PRs and make sure everyone leaves with an idea of what they are working on
- Bug people to review your PRs!
- If you have many PRs open, prioritize getting them reviewed and merged over starting new work