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.

68 lines
2.2 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 the following commands :
- `npm run down`
- `npm run up`
# Availaible endpoints
- Products :
| 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 ) |
2 years ago
- Users :
| HTTP Verb | Endpoint | CRUD |
|:--------------:|:--------------------|:-----------------------|
| Get | `/users`, | Index ( Token ) |
| Get | `/users/:id` | Read ( Token ) |
| Post | `/users` | Create |
| Put | `/users/auth` | Authenticate ( Token ) |
| Put | `/users/:id` | Update ( Token ) |
| Delete | `/users/:id` | Delete ( Token ) |
- Orders
| HTTP Verb | Endpoint | CRUD |
|:--------------:|:-----------------------|:-----------------|
| Get | `/orders`, | Index ( Token ) |
| Get | `/orders/:id` | Read |
| Post | `/orders` | Create |
| Post | `/orders/:id/products` | Create ( Token ) |
| Delete | `/orders/:id/products` | Delete ( Token ) |
# Built with
- Typescript
- Postgres
- Node
- Express
- Dotenv
- Db-migrate
- Jsonwebtoken
- Jasmine
- Supertest
# Author
Anis Benziane.