You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.8 KiB
Markdown

2 years ago
# Shelf Project
2 years ago
2 years ago
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.
# 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 :
- get `/products`, Index
- get `/products/:id` Read
- post `/products` Create ( Token )
- put `/products/:id` Update ( Token )
- delete `/products/:id` Delete ( Token )
- Users :
- 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 )
- Orders :
get `/orders`, Index ( Token )
get `/orders/:id` Read ( Token )
post `/orders` Create
post `/orders/:id/products` Authenticate ( Token )
delete `/orders/:id/products` Delete ( Token )
# 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.