Storefront backend restful api that facilitates creationg of orders, products and users. User can order for a product and completed the purchase through various endpoints.
- Clone this repo and run
yarn in your terminal at the project root.
- Ensure you either have
docker installed in your machine or a local instance of postgres installed in your machine.
- For
DOCKER there is a docker-compose.yml file at the root of the project. Navigate to the project's directory and run docker compose up -d to run your docker instance.
- Use
docker compose ps to check if the instance is running before connecting to it. You can proceed to login to it using psql -U postgres
- For
postgres local instance, first check if the service is running either from the services window [windows os] or systemctl status postgresql for linux system. Then login to the db using psql -U postgres
- Rename the
.env.example file to .env to use it as the configuration enviroment file.
- To run migrations and create db. First run
yarn create-dev-db to create the db and yarn migrate-dev-db to create migrations.
- Change the
ENV variable to test in the .env file and run yarn test to run tests.
- Change the
ENV variable to dev in the .env file and run yarn start:dev for development purposes and yarn start:prod for production.
- Postgres for the database
- Node/Express for the application logic
- dotenv from npm for managing environment variables
- db-migrate from npm for migrations
- jsonwebtoken from npm for working with JWTs
- jasmine from npm for testing
- bcypt to hash password
| Method |
Endpoint |
Description |
Response |
| GET |
/api/users |
Retrieve list of users |
200 OK |
| POST |
/api/users |
Register a user |
201 OK |
| GET |
/api/users/1 |
Retrieve a single user |
200 OK |
| UPDATE |
/api/users/1 |
Update a user |
201 OK |
| DELETE |
/api/users/1 |
Delete a user |
200 OK |
| GET |
/api/users/invalid |
Validate invalid user |
400 BAD REQUEST |
| GET |
/api/users/100 |
Validate if user exists |
404 NOT FOUND |
| Method |
Endpoint |
Description |
Response |
| GET |
/api/orders |
Retrieve list of orders |
200 OK |
| POST |
/api/orders |
Register an order |
201 OK |
| GET |
/api/orders/1 |
Retrieve a single order |
200 OK |
| UPDATE |
/api/orders/1 |
Update an order |
201 OK |
| DELETE |
/api/orders/1 |
Delete an order |
200 OK |
| GET |
/api/orders/invalid |
Validate invalid order id |
400 BAD REQUEST |
| GET |
/api/orders/100 |
Validate if order exists |
404 NOT FOUND |
| Method |
Endpoint |
Description |
Response |
| GET |
/api/products |
Retrieve list of products |
200 OK |
| POST |
/api/products |
Register a product |
201 OK |
| GET |
/api/products/1 |
Retrieve a single product |
200 OK |
| UPDATE |
/api/products/1 |
Update a product |
201 OK |
| DELETE |
/api/products/1 |
Delete a product |
200 OK |
| GET |
/api/products/invalid |
Validate invalid product id |
400 BAD REQUEST |
| GET |
/api/products/100 |
Validate if product exists |
404 NOT FOUND |
| Method |
Endpoint |
Description |
Response |
| GET |
/api/dashboard/user-order |
Retrieve a user with specific order |
200 OK |
| GET |
/api/dashboard/users-orders |
Retrieve list of all orders placed |
200 OK |
| GET |
/api/cart/1 |
Retrieve a specific order in cart |
200 OK |
| UPDATE |
/api/users/1/checkout/1 |
Checkout an order |
201 OK |