A desktop application for calculating monthly training fees for judo athletes, built with Python and Tkinter. This project was created solely as part of a university programming assignment to demonstrate object-oriented, procedural, and event-driven programming paradigms. It is archived and will not be updated or maintained. Any entities/organizations mentioned in this project are entirely fictional.
- Purpose: Portfolio display only
- Maintenance: No further changes will be made
- Contributions: Pull requests and issues will not be accepted
This application was developed for North Sussex Judo, a local training facility that provides judo sessions to people of all ages and experience levels. The system calculates monthly training fees based on training plans, private coaching, and competition entries.
- Athlete Management: Register and manage athlete profiles
- Fee Calculation: Automated monthly fee calculations with itemized breakdowns
- Weight Categories: Automatic weight category classification
- Competition Tracking: Support for competition entries (Intermediate/Elite only)
- Private Coaching: Track additional coaching hours and costs
- Comprehensive Reports: Individual and summary financial reports
- Modern GUI: Clean, intuitive user interface with tabbed navigation
- Data Validation: Robust input validation and error handling
- Sample Data: Pre-loaded with demonstration athletes
- Python 3.8 or higher
- tkinter (usually included with Python)
-
Clone the repository
git clone https://github.com/parsecsion/north-sussex-judo.git cd north-sussex-judo -
Verify Python installation
python --version
-
Run the application
python north_sussex_judo.py
- Launch the application - The main window will appear with three tabs
- Add Athletes - Use the "Add New Athlete" tab to register athletes
- View Athletes - Check the "Athlete List" tab to see all registered members
- Calculate Fees - Use the "Fee Calculator" tab for monthly fee reports
| Component | Requirement |
|---|---|
| Operating System | Windows 10+, macOS 10.14+, Linux (Ubuntu 18.04+) |
| Python Version | 3.8 or higher |
| RAM | 512 MB minimum |
| Storage | 50 MB available space |
| Display | 900x700 minimum resolution |
| Plan | Sessions/Week | Weekly Fee | Monthly Fee | Competition Entry |
|---|---|---|---|---|
| Beginner | 2 | £25.00 | £100.00 | ❌ Not Allowed |
| Intermediate | 3 | £30.00 | £120.00 | ✅ Allowed |
| Elite | 5 | £35.00 | £140.00 | ✅ Allowed |
- Private Coaching: £9.50 per hour (maximum 5 hours/week)
- Competition Entry: £22.00 per competition
- Weight Categories: 6 official categories (Flyweight to Heavyweight)
- Month = 4 weeks for fee calculations
- Only Intermediate and Elite athletes can enter competitions
- Maximum 4 competitions per month
- All currencies displayed to 2 decimal places
This project demonstrates three core programming paradigms:
AthleteClass: Encapsulates athlete data and behaviors- Data Encapsulation: Private attributes with property accessors
- Method Organization: Logical grouping of related functionality
- Inheritance Ready: Extensible design for future enhancements
- Utility Functions: Currency formatting, input validation
- Modular Design: Reusable functions with clear input/output
- Algorithm Implementation: Step-by-step fee calculation processes
- GUI Framework: Complete tkinter-based interface
- Event Handlers: User interaction callbacks
- Asynchronous Processing: Responsive interface design
north-sussex-judo/
├── north_sussex_judo.py # Main application
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── LICENSE # MIT License
├── docs/ # Documentation
│ └── user_guide.md # User manual
├── screenshots/ # Application screenshots
│ ├── main_interface.png
│ ├── adding_athletes.png
│ ├── athlete_management.png
│ └── fee_calculation.png
└── tests/ # Unit tests
└── test_judo_calculater.py
- PEP 8 Compliance: Follows Python style guidelines
- Type Hints: Enhanced code documentation and IDE support
- Comprehensive Documentation: Detailed docstrings and comments
- Error Handling: Robust exception handling and user feedback
- Input Validation: Comprehensive data validation
- Modular Design: Clean separation of concerns
Clean, professional interface with tabbed navigation
Simple form-based interface for registering new athletes.
Comprehensive athlete registration and management
Detailed fee calculations and reporting
This project is licensed under the MIT License - see the LICENSE file for details.
Muhammad Omer Hussain
- GitHub: @parsecsion
- Email: muhammad.omer1021@gmail.com
⚠ Disclaimer: This was an academic exercise. All businesses, names, and entities mentioned are fictional and created for learning purposes only. No real-world business or organization is represented.
If you found this project helpful, please consider giving it a star!