2023-06-11 09:10:49 +00:00
|
|
|
# Ecomm #
|
|
|
|
|
|
|
|
## Description ##
|
|
|
|
This is a simple e-commerce backend application.
|
|
|
|
|
|
|
|
Technologies used:
|
|
|
|
|
|
|
|
* Node.js
|
|
|
|
* typescript
|
|
|
|
* Express.js
|
|
|
|
* MongoDB
|
|
|
|
* Mongoose ORM
|
|
|
|
* Docker (docker-compose)
|
|
|
|
* bcrypt
|
|
|
|
* JWT
|
|
|
|
|
|
|
|
## How to run ##
|
|
|
|
1. Clone the repository
|
|
|
|
2. Make sure you have docker and docker-compose installed
|
|
|
|
3. Implement the .env file
|
|
|
|
4. Run `docker-compose up` in the root directory
|
|
|
|
The application will be running on port 3000
|
|
|
|
The database will be running on port 27017
|
|
|
|
|
|
|
|
## API ##
|
2023-06-11 09:50:33 +00:00
|
|
|
app.use('/products', productRouter);
|
|
|
|
app.use('/cart', cartRouter);
|
|
|
|
|
|
|
|
# Users #
|
|
|
|
## POST /users ## - Create a new user
|
|
|
|
### Request body ###
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"name": "string",
|
|
|
|
"email": "string",
|
|
|
|
"password": "string"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
### Response body ###
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"user": {
|
|
|
|
"_id": "string",
|
|
|
|
"name": "string",
|
|
|
|
"email": "string",
|
|
|
|
"password": "string",
|
|
|
|
"createdAt": "string",
|
|
|
|
"updatedAt": "string",
|
|
|
|
"__v": "number"
|
|
|
|
},
|
|
|
|
"token": "string"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
## POST /users/login ## - Login
|
|
|
|
### Request body ###
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"email": "string",
|
|
|
|
"password": "string"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
### Response ###
|
|
|
|
# body #
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"access-token": "string"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
# headers #
|
|
|
|
``` Cookie - "access-token"": "string" ```
|
|
|
|
|
|
|
|
|
|
|
|
# Products #
|
|
|
|
## GET /products ## - Get all products
|
|
|
|
accepts query params: page, limit. Default values: page = 0, limit = 50.
|
|
|
|
### Response body ###
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"products": [
|
|
|
|
{
|
|
|
|
"_id": "string",
|
|
|
|
"name": "string",
|
|
|
|
"description": "string",
|
|
|
|
"price": "number",
|
|
|
|
"createdAt": "string",
|
|
|
|
"updatedAt": "string",
|
|
|
|
"__v": "number"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"total": "number"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-11 09:10:49 +00:00
|
|
|
|
|
|
|
|