A comprehensive Python-based bakery management system with role-based access control, inventory management, order processing, and financial reporting capabilities.
- Features
- System Architecture
- User Roles
- Installation
- Usage
- File Structure
- CSV Data Files
- Contributing
- Secure login system with password validation
- Role-based access control (Manager, Customer, Cashier, Baker)
- Account creation for customers
- Employee account management (Manager only)
- Last login tracking
- System Administration: Create and manage employee accounts
- Account Management: View, modify, and delete user accounts
- Recipe Management: Approve/reject baker recipe requests
- Inventory Control: Manage ingredients and products
- Financial Reports: View sales, expenses, and profit analysis
- Product Management: Add, modify, and delete products
- Equipment Reports: Track bakery equipment status
- Product Browsing: View available bakery products with details
- Shopping Cart: Add/remove items, manage quantities
- Order Placement: Place orders with automatic total calculation
- Order History: View past orders and spending
- Account Management: Update personal information
- Product Management: View and modify product information
- Discount Management: Apply and manage product discounts
- Order Processing: Handle customer transactions
- Inventory Monitoring: Check product availability
- Recipe Management: Create new recipe requests
- Recipe Modification: Request changes to existing recipes
- Production Planning: View pending recipes and requirements
- CSV-based Storage: All data stored in structured CSV files
- Inventory Tracking: Real-time ingredient and product monitoring
- Order Management: Complete order lifecycle tracking
- Financial Reporting: Automated expense and revenue calculation
- Equipment Monitoring: Track bakery equipment status
The system follows a modular design with clear separation of concerns:
- Main Program:
Assignment Bakery(MainProgram).py- Core application logic - Helper Functions:
adhocBakerFunctions.py- Utility functions for CSV operations, validation, and formatting - Data Storage: CSV files for persistent data storage
- Python 3.7 or higher
- No external dependencies required (uses only built-in Python libraries)
- Clone or download the repository
- Ensure all files are in the same directory
- Run the main program:
python "Assignment Bakery(MainProgram).py"python "Assignment Bakery(MainProgram).py"The system comes with pre-configured accounts:
Manager Account:
- Username:
test123 - Password:
Testing123
Cashier Account:
- Username:
XinMin - Password:
1WantSleep
Baker Account:
- Username:
Raj123 - Password:
rajenG@y5
Customer Accounts:
- Various customer accounts available (see
List_Account.csv)
- Use numbered menu options to navigate
- Type
#exitor#cancelto return to previous menus - Follow on-screen prompts for data entry
Mini Bakery Program/
βββ Assignment Bakery(MainProgram).py # Main application
βββ adhocBakerFunctions.py # Helper functions
βββ List_Account.csv # User accounts
βββ List_Product.csv # Product catalog
βββ List_Order.csv # Order history
βββ List_Expenses.csv # Business expenses
βββ Inventory_Ingredient.csv # Ingredient inventory
βββ Inventory_Product.csv # Product inventory
βββ Pending_Recipe.csv # Recipe requests
βββ Report_Equipment.csv # Equipment status
βββ Report_Finance.csv # Financial reports
βββ Report_Product.csv # Product reports
List_Account.csv: User credentials, roles, and profile informationList_Product.csv: Product catalog with prices and descriptionsList_Order.csv: Complete order transaction historyList_Expenses.csv: Business expense tracking
Inventory_Ingredient.csv: Raw ingredient stock levelsInventory_Product.csv: Finished product inventory
Pending_Recipe.csv: Baker recipe requests awaiting approvalReport_Equipment.csv: Equipment maintenance and statusReport_Finance.csv: Financial performance metricsReport_Product.csv: Product performance analytics
- Minimum 8 characters, maximum 20 characters
- Must contain at least one uppercase letter
- Must contain at least one number
- Allowed special characters:
!@$_.
- 4-20 characters in length
- Must contain at least 3 alphabetic characters
- Allowed special characters:
@_. - Must be unique across all users
- Real-time inventory checking
- Automatic total calculation
- Order history tracking
- Customer spending analytics
- Automated profit/loss calculations
- Expense categorization
- Revenue tracking by product
- Date-based financial analysis
- Python 3.x: Core programming language
- CSV Module: Data persistence
- Datetime Module: Time tracking and validation
- OS Module: Cross-platform file operations
- Comprehensive input validation for all user entries
- Date format verification (YYYY-MM-DD)
- Numeric range checking for prices and quantities
- String length and character validation
- Graceful handling of file I/O errors
- User-friendly error messages
- Input validation with retry mechanisms
- Safe exit options throughout the application
This is an educational project demonstrating:
- Object-oriented programming concepts
- File I/O operations
- User interface design in console applications
- Data validation and error handling
- Role-based access control implementation
- All data is stored locally in CSV format
- The system is designed for single-user operation
- No network connectivity required
- Cross-platform compatible (Windows, macOS, Linux)
- Fixed directory path issues for CSV file access
- Improved error handling for file operations
- Enhanced cross-platform compatibility
- Added comprehensive input validation
This bakery management system was developed as a comprehensive Python programming project, showcasing various programming concepts including file handling, data validation, user authentication, and role-based access control.
##Collaborators
- Rajendran
- Tan Zhen Ping
- Sangeerthanaa