Skip to content

Latest commit

 

History

History
92 lines (68 loc) · 2.34 KB

README.md

File metadata and controls

92 lines (68 loc) · 2.34 KB

IMS(Inventory Management System)

An Inventory Management System(IMS) is the tool that provides user the ability to track Inventory of different infrastructures of an organisation.

Tech Stack

  • Django
  • Docker, Docker-Compose
  • Postgres
  • Bootstrap/HTML/CSS
  • Redis[Cache and Task Queue]
  • Huey[Task Queue]
  • Nginx[Reverse Proxy]
  • Graphene[GraphQL API]

Features

  • User Authentication
  • User Registration
  • Admin Dashboard
    • Add/Remove/Update Inventory
    • Add/Remove/Update Ticket
    • Add/Remove/Update Maintenance
    • Report Analytics Dashboard
  • User Dashboard
    • View Ticket and Create Ticket
  • Agent Dashboard
    • View Ticket and Assign Ticket
    • Create Activity Log

Installation

  • Fork and clone the project, and add a upstream remote to track main repo changes
       $ git clone git@gitlab.com:{username}/cms.git
       $ cd IMS
       $ git remote add upstream git@gitlab.com:amfoss/amfoss/ims.git
  • Create a .env file in the project root directory and add the following variables
DEBUG=True
SECRET_KEY=secret
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_HOST=db

Docker Setup

  • Install docker and docker-compose
  • To run the project locally, run the following commands
  • docker-compose up -d --build - build and run the project locally
  • docker-compose exec web python3 manage.py createsuperuser - create admin user

For removing the docker containers, run the following command

    $ docker-compose down
  • To remove all docker images, and volumes, run the following command
    $ docker system prune -a --volumes
  • This will reset the database, and remove all the docker images and volumes.

  • To access the admin panel, go to http://localhost/admin/ or http://127.0.0.1/admin/

  • To access the graphql endpoint, go to http://localhost/api/ or http://127.0.0.1/api/

Development

  • For creating new features, create new branch locally and work on it.
  • After testing the feature, create a PR.
  • To fetch new changes and update the main branch, run the following commands
    $ git fetch upstream
    $ git rebase upstream/main

Formatting

  • Use black for formatting the code.
  • black is already installed in the project dependencies.
  • To format the code, run black . in the project root directory.