ecomm/README.md

132 lines
2 KiB
Markdown
Raw Normal View History

2023-06-11 10:01:50 +00:00
# Ecomm Backend
This repository contains the backend implementation for the Ecomm e-commerce application.
## Description
This is a simple e-commerce backend application built with Node.js, TypeScript, Express.js, MongoDB, and Docker. It provides API endpoints to manage users and products.
## Table of Contents
2023-06-11 10:09:27 +00:00
- [Technologies Used]
- [How to Run]
- [API Documentation]
- [Users]
- [Create a New User]
- [Login]
- [Products]
- [Get All Products]
2023-06-11 10:01:50 +00:00
## Technologies Used
- Node.js
- TypeScript
- Express.js
- MongoDB
- Mongoose ORM
- Docker (docker-compose)
- bcrypt
- JWT
## How to Run
To run the Ecomm backend application, follow these steps:
1. Clone the repository.
2. Ensure that you have Docker and Docker Compose installed.
3. Implement the required environment variables by creating an `.env` file.
4. Run the following command in the root directory:
2023-06-11 10:05:40 +00:00
````
2023-06-11 10:01:50 +00:00
docker-compose up
2023-06-11 10:05:40 +00:00
```
2023-06-11 10:01:50 +00:00
The application will be running on port 3000, and the database will be running on port 27017.
API Documentation
2023-06-11 10:05:40 +00:00
# Users
2023-06-11 10:01:50 +00:00
Create a New User - POST /users
2023-06-11 10:09:27 +00:00
Creates a new user.
2023-06-11 10:01:50 +00:00
Request Body
```
{
"name": "string",
"email": "string",
"password": "string"
}
```
Response Body
2023-06-11 10:15:20 +00:00
status code 200
2023-06-11 10:01:50 +00:00
```
{
2023-06-11 10:15:20 +00:00
message:
"User created successfully"
}
```
status code 400
```
{
message:
"User already exists"
}
```
status code 500
```
{
message:
"Internal server error"
}
2023-06-11 10:01:50 +00:00
```
2023-06-11 10:15:20 +00:00
Login - POST /users/login
Logs in a user.
2023-06-11 10:01:50 +00:00
2023-06-11 10:15:20 +00:00
Request Body
```
{
"email": "string",
"password": "string"
}
```
Response Body
status code 200
```
{
access-token:
"TOKEN"
}
```
# Products
Get All Products - GET /products
Gets all products.
Parameters
```
page: number(default: 0)
limit: number(default: 50)
```
Response Body
status code 200
```
{
products: [
{
_id: "string",
name: "string",
description: "string",
price: number,
image: "string",
createdAt: "string",
updatedAt: "string"
}
]
}
```
status code 404
```
{
message:
"Product not found."
}
````