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.
- 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
- 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
- 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
- Clean management dashboard
- Responsive layout
- Separate Employee and Inventory sections
- Success and error messages
- Custom 404 and 500 error pages
- Confirmation before deleting records
- Python
- Flask
- MySQL
- HTML
- CSS
- Jinja2
- mysql-connector-python
- python-dotenv
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.

### Employee Management
The employee section allows adding, searching, editing and deleting employee records.

### Inventory Management
The inventory section is used to manage products, quantities, pricing and stock value.

## How to Run
### 1. Clone the repository
```bash
git clone https://github.com/Omi2413/employee-inventory-management-system.git
cd employee-inventory-management-system
python -m venv venvFor Windows:
venv\Scripts\activatepip install -r requirements.txtCreate a .env file in the project folder and add the required MySQL/database configuration.
Do not commit the .env file to GitHub.
Use database.sql to create the required MySQL database and tables.
python app.pyThen open the local address shown by Flask in your browser.
- 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