No description
Find a file
2023-06-11 13:15:20 +03:00
src README 2023-06-11 13:15:20 +03:00
.dockerignore docker 2023-06-11 01:22:34 +03:00
.env.example done with checkout + started mail 2023-06-10 01:20:42 +03:00
.gitignore generate and push are working 2023-06-08 14:05:28 +03:00
docker-compose.yaml removed unused vars 2023-06-11 01:24:50 +03:00
Dockerfile using npm to start the server 2023-06-11 01:27:51 +03:00
package-lock.json sendgrid added 2023-06-10 01:39:09 +03:00
package.json test 2023-06-11 13:01:29 +03:00
README.md README 2023-06-11 13:15:20 +03:00
tsconfig.json generate and push are working 2023-06-08 14:05:28 +03: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

  • [Technologies Used]
  • [How to Run]
  • [API Documentation]
    • [Users]
      • [Create a New User]
      • [Login]
    • [Products]
      • [Get All Products]

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:
    docker-compose up
    ```
    

The application will be running on port 3000, and the database will be running on port 27017.

API Documentation

Users

Create a New User - POST /users Creates a new user.

Request Body

{
  "name": "string",
  "email": "string",
  "password": "string"
}

Response Body status code 200

{
  message: 
  "User created successfully"
}

status code 400

{
  message: 
  "User already exists"
}

status code 500

{
  message: 
  "Internal server error"
}

Login - POST /users/login Logs in a user.

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."
}