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.
Vic dee64d41c4 | 2 years ago | |
---|---|---|
migrations | 2 years ago | |
src | 2 years ago | |
.gitignore | 2 years ago | |
LICENSE.txt | 2 years ago | |
README.md | 2 years ago | |
database.json | 2 years ago | |
docker-compose.yml | 2 years ago | |
jasmine.json | 2 years ago | |
package.json | 2 years ago | |
tsconfig.json | 2 years ago | |
yarn.lock | 2 years ago |
README.md
Shelf Project
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 )
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 ) - get
-
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 )
- get
-
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 )
- get
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.