2022-05-24 01:48:50 +00:00
# Shelf Project
2022-04-19 14:47:00 +00:00
2022-05-24 01:48:50 +00:00
An online storefront to showcase products. Users is able to browse an index of all products, see the specifics of a single product, and add products to an order that they can view in a cart page.
2022-05-24 17:42:02 +00:00
# Installation
1 - Install packages dependencies. `npm install`
2 - Inside shelf folder mount the database. `docker compose up`
3 - Run tests. `npm run test`
4 - Run the database `npm run up`
5 - Launch the application `npm run start`
Note : If needed you can reset the tables by closing the app and running `npm run down` , `npm run up`
# Availaible endpoints
- Products :
2022-05-24 17:46:40 +00:00
- get `/products` , Index
- get `/products/:id` Read
- post `/products` Create ( Token )
- put `/products/:id` Update ( Token )
- delete `/products/:id` Delete ( Token )
2022-05-24 17:42:02 +00:00
2022-05-24 17:55:47 +00:00
| HTTP Verb | Endpoint | CRUD |
|:-------------: |:-------------------:| -----------------:|
| get | `/products` | Index |
| get | `/products/:id` | Read |
| post | `/products` | Create ( Token ) |
| put | `/products/:id` | Update ( Token ) |
| delete | `/products/:id` | Delete ( Token ) |
2022-05-24 17:42:02 +00:00
- Users :
2022-05-24 17:46:40 +00:00
- get `/users` , Index ( Token )
- get `/users/:id` Read ( Token )
- post `/users` Create
- post `/users/auth` Authenticate ( Token )
- put `/users/:id` Update ( Token )
- delete `/users/:id` Delete ( Token )
2022-05-24 17:42:02 +00:00
- Orders :
2022-05-24 17:55:47 +00:00
- get `/orders` , Index ( Token )
- get `/orders/:id` Read ( Token )
- post `/orders` Create
- post `/orders/:id/products` Authenticate ( Token )
- delete `/orders/:id/products` Delete ( Token )
2022-05-24 17:42:02 +00:00
# Built with
- Typescript
- 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/Supertest from npm for testing
# Author
Anis Benziane.