This is a backend application built with Express and Postgres, that includes authentication and authorization and offers an alternative login using GitHub OAuth to sign in users.
This project was built as part of my time in the July 2022 cohort at Alchemy Code Lab in Portland, Oregon.
This backend application uses Express to create a server and Postgres to create a database. It includes the functionality to Create Read Update and Delete books from the database.
Command | Description |
---|---|
npm start |
Starts the app - should only be used in production as changes will not get reloaded |
npm run start:watch |
Runs the app using nodemon which watches for changes and reloads the app |
npm test |
Runs the tests once |
npm run test:watch |
Continually watches and runs the tests when files are updated |
npm run setup-db |
Sets up the database locally |
npm run setup-heroku |
Sets up the database on Heroku |
- Make sure you have node installed
- Clone the repository to your local machine
- Create a dotenv file just like the example, except with unique values for the variables
- Ports 8080 & 5432
/api/v1/users/
POST
Creates new user
api/v1/users/sessions/
POST
Signs in existing user
/api/v1/users/me/
GET
Returns current user
/api/v1/users/
GET
Authorized endpoint - returns all users for admin
api/v1/users/sessions/
DELETE
Deletes a user session
/restaurants
GET
returns a list of restaurants
/restaurants/:id
GET
returns a specific restaurant
/restaurants/:id/reviews
POST
allows user to add reviews
/api/v1/github/login
GET
for redirecting to Github’s OAuth
/api/v1/github/callback
GET
callback URI for Github to redirect to after log in
/api/v1/github
DELETE
signs a user out (i.e. deletes the session cookie)
- JavaScript
- Express
- Babel
- Node
- Postgres
- Postman
- Jest
- Nodemon
- ESLint
- Prettier
- GitHub Actions
Thanks to Alchemy Code Lab and instructor Julie Nisbet, who created the template for the project and was crucial in debugging along the way!
Feel free to reach out! I can be messaged through LinkedIn by clicking on the badge above or by emailing me at [email protected].