Skip to content

About

A web-based Employee and Inventory Management System built with Python, Flask and MySQL.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Employee & Inventory Management System

A web-based Employee and Inventory Management System that I built using Python, Flask and MySQL.

As an E&TC engineering student, most of my academic journey has been around electronics, communication systems, and core engineering subjects. While this gave me a strong technical foundation, I also became interested in exploring the software side of engineering and understanding how the apps we use actually work behind. I started this project as a way to get hands-on experience with Python, Flask, MySQL, backend development, and CRUD operations — areas I hadn't had as much opportunity to explore through my regular course. Rather than making a basic practice project, I wanted to build something from scratch that felt closer to a small real-world application. I first worked on connecting the application to a MySQL database, managing employee and inventory records functionality, validating user input, and creating a dashboard to showcase the information in an easier way. I also learned a lot along the way by running into errors and literally so much errors, figuring out what was going wrong then fixing them and gradually improving the project. For me, the project was more about getting comfortable with software development by actually building with it.

What the project can do

It has a Dashboard that

  • Shows the total number of employees
  • Shows the number of inventory records
  • Shows total available stock
  • Shows total inventory value
  • Shows low-stock items
  • Provides quick access to Employee and Inventory management

An Employee Management that can

  • Add new employees
  • View employee records
  • Search employees by name, department or email
  • Edit employee details
  • Delete employee records
  • Prevent duplicate email entries
  • Validate required fields

And an Inventory Management which can

  • Add inventory items
  • View product and stock information
  • Search by product name or category
  • Edit inventory items
  • Delete inventory items
  • Calculate stock value automatically
  • Identify items with 5 or fewer units as low stock
  • Prevent negative quantities and prices

Also an User Interface with

  • Clean management dashboard
  • Responsive layout
  • Separate Employee and Inventory sections
  • Success and error messages
  • Custom 404 and 500 error pages
  • Confirmation before deleting records

Technologies that I learned and used

  • Python
  • Flask
  • MySQL
  • HTML
  • CSS
  • Jinja2
  • mysql-connector-python
  • python-dotenv

Project Structure

Employee_Inventory_Management_System/
│
├── app.py
├── database.sql
├── requirements.txt
├── README.md
├── .gitignore
│
├── static/
│   └── style.css
│
├── templates/
│   ├── base.html
│   ├── dashboard.html
│   ├── employees.html
│   ├── edit_employee.html
│   ├── inventory.html
│   ├── edit_inventory.html
│   ├── 404.html
│   └── 500.html
│
└── screenshots/
    ├── dashboard.png
    ├── employees.png
    └── inventory.png

## Screenshots

### Dashboard
The dashboard gives an overview of employees, inventory, stock value and low-stock items.
![Dashboard](screenshots/dashboard.png)

### Employee Management
The employee section allows adding, searching, editing and deleting employee records.
![Employee Management](screenshots/employees.png)

### Inventory Management
The inventory section is used to manage products, quantities, pricing and stock value.
![Inventory Management](screenshots/inventory.png)

## How to Run

### 1. Clone the repository
```bash
git clone https://github.com/Omi2413/employee-inventory-management-system.git
cd employee-inventory-management-system

2. Create a virtual environment

python -m venv venv

3. Activate the virtual environment

For Windows:

venv\Scripts\activate

4. Install dependencies

pip install -r requirements.txt

5. Configure environment variables

Create a .env file in the project folder and add the required MySQL/database configuration.

Do not commit the .env file to GitHub.

6. Set up the database

Use database.sql to create the required MySQL database and tables.

7. Run the application

python app.py

Then open the local address shown by Flask in your browser.

Future Improvements

  • User authentication and role-based access
  • Advanced inventory reporting
  • Export reports to CSV/PDF
  • Pagination for large datasets
  • Improved dashboard analytics
  • Deployment to a cloud platform

About

A web-based Employee and Inventory Management System built with Python, Flask and MySQL.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages