An open API service indexing awesome lists of open source software.

https://github.com/ricardoyam/inventorymanagementsystem

Inventory management system for clothing business👗
https://github.com/ricardoyam/inventorymanagementsystem

aws django docker javascript postgresql python react terraform

Last synced: 5 months ago
JSON representation

Inventory management system for clothing business👗

Awesome Lists containing this project

README

          


IMS logo


IMS



Open source Inventory Management System for clothing business👗


Dashboard


Visit Now


## 🌟 About the Project

IMS is an open-source Inventory Management System which provides powerful features for stock control, customer management and order placement, deployed on highly available AWS services. The system is built on a Python/Django-based database backend, coupled with an interactive React-based frontend, providing an intuitive interface for shop managers to efficiently manage operations.

### 👾 Tech Stack

Frontend


  • React

  • React Router

  • Tailwind css

Backend


  • Python

  • pytest

  • Django

  • JWT

Database


  • Postgres

  • SQLite

DevOps


  • Docker

  • Terraform

AWS


  • VPC

  • NAT Gateway

  • Internet Gateway

  • Application Load Balancer

  • RDS

  • S3

  • ECS Fargate

  • Auto Scaling

  • ECR

  • ACM

  • Route 53

  • CloudFront

🔒 Demo Account

**Account:** Admin

**Password:** 123456

✅ To be implemented



Add stock by using scanner




Stock info autofilling (ML)

## Architecture

![Architecture](./doc/arc.png)

## Getting Started

### Local Deployment

Before starting the deployment, ensure that [Docker](https://www.docker.com/) is installed on your system.

To start your local deployment, run the following line:

```bash
docker compose up --build
```

Now, you can access IMS system via [http://localhost:5173/]() !

To stop your local deployment, simply run the following line:

```bash
docker compose down
```

### AWS Deployment

Before starting the deployment, ensure that [Terraform](https://www.terraform.io/) is installed on your system.

To configure AWS credentials used by Terraform, navigate to the `/terraform/provider.tf` file and **update** the following line:

```Terraform
provider "aws" {
...
profile = "iamadmin-test" # UPDATE as your AWS profile name
}
```

or, **delete** this line to use default configuration.

Additionally, to certify your two domains (frontend and backend) via AWS Certificate Manager, create a new file named `variables.tf` under the `/terraform` folder. Add the following lines to the file, replacing the placeholders with your values.

```Terraform
variable "backend_domain_name" {
type = string
default = "..." # e.g. demoims-backend.com
}

variable "acm_certificate_backend_arn" {
type = string
default = "..."
}

variable "route53_zone_backend_id" {
type = string
default = "..."
}

variable "frontend_domain_name" {
type = string
default = "..." # e.g. demoims.com
}

variable "acm_certificate_frontend_arn" {
type = string
default = "..."
}

variable "route53_zone_frontend_id" {
type = string
default = "..."
}
```

Now, you can start your deployment, run the following line:

```bash
terraform init
terraform apply
```

![Finish Message](./doc/finish.png)

and, run the following command to destroy your deployment:

```bash
terraform destroy
```

## Screenshots

Dashboard page

![Dashboard](./doc/dashboard_2.png)

Customer page

![Customer](./doc/customer.png)

Product details page

![Detail](./doc/stock.png)

VPC Deployment by Terraform

![](./doc/vpc.png)

RDS Deployment by Terraform

![RDS](./doc/rds.png)

ECS Deployment by Terraform

![ECS](./doc/ecs.png)

ECS Task Deployment by Terraform

![ECS Task](./doc/ECS_Task.png)

CloudFront Deployment by Terraform

![CloudFront](./doc/Cloudfront.png)

Route 53 Deployment by Terraform

![Route 53](./doc/Route53.png)

## License

[MIT License](LICENSE)