A simple inventory management system built with Python GUI (Tkinter) and MySQL database.
- β Add, update, delete products
- π Search products by name, category, or description
- π View inventory statistics
β οΈ Low stock alerts- π¨ User-friendly GUI interface
- π Category management
- πΎ MySQL database integration
Add screenshots of your application here
- Python 3.8 or higher
- MySQL 8.0 or higher
- pip (Python package installer)
git clone https://github.com/isuru709/inventory-management-system.git
cd inventory-management-systempip install -r requirements.txt- Start MySQL service
- Run the database setup script:
mysql -u root -p < setup/database_setup.sql - Insert sample data (optional):
mysql -u root -p < setup/sample_data.sql
-
Copy the config file:
cp config.py config_local.py
-
Edit
config_local.pywith your database credentials:DATABASE_CONFIG = { 'host': 'localhost', 'database': 'inventory_system', 'user': 'your_mysql_username', 'password': 'your_mysql_password', 'port': 3306 }
python test_connection.pypython main_app.py- Fill in the product information in the form
- Click "Add Product" button
- Product will appear in the products list
- Double-click on a product in the list
- Modify the information in the form
- Click "Update Product" button
- Select a product from the list
- Click "Delete Product" button
- Confirm the deletion
- Enter search term in the search box
- Click "Search" button or press Enter
- Results will be filtered in the list
- Go to "Statistics" tab
- Set your preferred low stock threshold
- Click "Low Stock" button to view items below threshold
inventory-management-system/
β
βββ README.md # Project documentation
βββ requirements.txt # Python dependencies
βββ .gitignore # Git ignore rules
βββ config.py # Configuration template
βββ database_operations.py # Database operations
βββ main_app.py # Main GUI application
βββ test_connection.py # Database connection test
βββ setup/
β βββ database_setup.sql # Database schema
β βββ sample_data.sql # Sample data
βββ screenshots/
βββ app_screenshot.png # Application screenshots
id- Primary key (AUTO_INCREMENT)name- Product name (VARCHAR)category- Product category (VARCHAR)price- Product price (DECIMAL)quantity- Stock quantity (INT)description- Product description (TEXT)created_at- Creation timestampupdated_at- Last update timestamp
id- Primary keyfirst_name,last_name- Customer nameemail- Email address (UNIQUE)phone- Phone numberaddress,city,state,zip_code- Address information
The application uses config.py for configuration settings. Create a config_local.py file for your personal database credentials:
DATABASE_CONFIG = {
'host': 'your_host',
'database': 'your_database',
'user': 'your_username',
'password': 'your_password',
'port': 3306
}- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Connection Error: Check MySQL credentials and ensure MySQL service is running
- Import Error: Install required dependencies with
pip install -r requirements.txt - Permission Error: Ensure MySQL user has necessary privileges
- Create an issue in this repository
- Check the troubleshooting section
- Review the configuration settings
- Web interface using Flask/Django
- Barcode scanning
- Report generation (PDF/Excel)
- Multi-user support
- Inventory alerts via email
- Product images upload
- Sales tracking
- Supplier management
Isuru - @isuru709
Give a βοΈ if this project helped you!
Built with β€οΈ using Python and MySQL