Skip to content

MohamedAEmara/Order-Management-System

Repository files navigation

Order Management System

Overview

Order Management System (OMS) is an API that allows users to manage their orders, carts, and products within an e-commerce mobile app. It provides CRUD operations for users, products, orders, and cart management.

technologies

Table of Contents

Schema Diagram for DB

schema

Video Demo

https://www.youtube.com/watch?v=dCHf8gvBj6Y

Getting Started

Prerequisites

Before getting started, ensure you have installed the following:

  • Node.js and npm
  • PostgreSQL

Installation

  1. Clone the repository: $ git clone git@github.com:MohamedAEmara/Order-Management-System.git
  2. Install dependencies: $ npm install
  3. Configure environment variables: Create a .env file in the root directory.
    • Copy .env.example content to .env file
    • Add values for environment variables
       DATABASE_URL="postgresql://username:password@localhost:5432/database_name?schema=public"
       SECRET="SOME_SECRET_VALUE"
  4. Migrate Prisma schema to the database by running these commands:
     $ npx prisma generate
     $ npx prisma migrate dev --name init
    
    

Endpoints

You can check endpoints & documentation on Postman from here

Technology Stack

The Order Management System uses the following technologies and tools:

Backend

  • NestJS: A progressive Node.js framework for building efficient, reliable, and scalable server-side applications.
  • PostgreSQL: A powerful, open-source relational database used for storing users, products, orders, and cart information.
  • Prisma: A modern database toolkit and ORM for Node.js and TypeScript.
  • Docker: A platform for developing, shipping, and running applications in isolated containers to ensure consistency across different environments.

Documentation

  • Postman: Used for documentation and to provide a collection for API requests.

Version Control

  • Git: A distributed version control system.
  • GitHub: A web-based platform for version control and collaboration.

How to Contribute

If you'd like to contribute to the project or have suggestions for improvement, please do not hesitate to make pull request.