NovaFlow is a modern, robust desktop application designed to streamline enterprise resource management. From employee tracking to inventory control, NovaFlow provides a unified interface for managing your business operations.
- Modern Login UI: Split-screen design with a dark aesthetic.
- Secure Hashing: Passwords are salted and hashed for maximum security.
- Password Recovery: Integrated "Forgot Password" flow with email verification (simulation).
- Employee Management: detailed profiles including specialized fields for Salesmen, HODs, and Supervisors.
- Compensation Tracking: Dynamic salary fields based on employee roles (Hourly vs Fixed vs Commission).
- Department Hierarchy: Manage departments, locations, and Head of Department (HOD) assignments.
- Multi-Warehouse Support: Create and manage warehouses with assigned supervisors.
- Product Catalog: Global product registry with detailed specifications.
- Stock Management: Track stock levels across different warehouse locations.
- Project Tracking: Manage generic projects with budgets, timelines, and locations.
- Work Logs: Employees can submit daily work hours logged against specific projects.
The application features a custom Dark Navy (#0f172a) theme, providing a professional and consistent user experience.
- Consistent Headers: All dialogs share a unified branding style.
- Validation: Real-time form validation with clear error messages.
- Responsive Forms: Scrollable inputs for data-heavy entry screens.
- Language: Python 3.x
- GUI Framework: Tkinter (Native)
- Database: MySQL (via
pymysql) - Assets: PIL (Pillow) for image rendering
.
├── main.py # Application entry point
├── Database/ # schema.sql, Schema_legacy.sql, add_project.sql
├── config/ # Database configuration (database.py)
├── dialogs/ # UI dialogs
├── models/ # Data models
├── services/ # Business logic
├── utils/ # Helper utilities
├── views/ # UI views
├── Users/ # User-related modules
├── Style/ # UI styling
├── Images/ # Image assets
├── requirements.txt # Python dependencies
├── REQUIREMENTS.md # System requirements
├── .env.example # Example environment variables
└── LICENSE.md # MIT License
-
Clone the Repository
git clone https://github.com/wajidcodes/NovaFlow-Company-Management-System-Python-MySQL-.git cd NovaFlow-Company-Management-System-Python-MySQL- -
Install Dependencies
pip install -r requirements.txt
-
Set up MySQL (required — the app cannot run without it)
- Install MySQL 8.0 or higher and make sure the server is running.
- Import the schema. This creates the
company_managementdatabase, 18 tables, and seed data (94 people, plus departments, projects, products and orders):mysql -u root -p < Database/schema.sql - Copy
.env.exampleto.envand fill in your MySQL credentials:The app readscp .env.example .env
DB_HOST,DB_USER,DB_PASSWORDandDB_NAMEfrom.env, so there is no need to editconfig/database.py. - Why this step is required: the login screen checks your email and password against the database on the first attempt (
services/auth_service.pycallsget_db_connection()), so without a running MySQL server, the imported schema and a filled.env, you cannot get past login. There is no offline or demo mode. - Demo login (seed data): after importing the schema, sign in with
wajid.ali@company.com/password123. This is a seeded demo account fromDatabase/schema.sql— change its password before any real use.
-
Run the Application
python main.py
This project is licensed under the MIT License - see the LICENSE.md file for details.