SCMS is a comprehensive web-based management system built with Flask and MySQL to streamline operations for community swimming clubs. The system handles membership management, class bookings, instructor scheduling, facility management, payments, and administrative reporting - providing an all-in-one solution for swimming club operations.
- Self-service membership registration and renewal
- Class and lesson booking capabilities
- Personal dashboard with booking history
- Profile management with health information
- Customizable membership plans (Monthly/Annual)
- Online payment processing
- Personal schedule management
- Class attendance tracking
- Student progress monitoring
- Profile and availability management
- Direct communication with members
- Comprehensive membership oversight
- Dynamic class scheduling and management
- Facility and pool lane allocation
- Financial reporting and analytics
- Staff management tools
- News and announcement system
- Backend: Python Flask 3.0.2
- Database: MySQL 8.3.0
- Frontend: HTML5, CSS3, JavaScript, Bootstrap
- Authentication: Flask-Hashing
- Template Engine: Jinja2
- Other Libraries:
- mysql-connector-python 8.3.0
- werkzeug 3.0.1
- blinker 1.7.0
- click 8.1.7
- colorama 0.4.6
- itsdangerous 2.1.2
- Python 3.8+
- MySQL Server 8.3.0+
- Git
- Clone the repository
git clone https://github.com/ChanMeng666/countryside-community-swimming-club.git
cd countryside-community-swimming-club
- Create and activate virtual environment (Optional but recommended)
python -m venv venv
source venv/bin/activate # On Windows use: .\venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
- Configure database connection
- Create
connect.py
file in thescmsapp
directory - Add your MySQL credentials
- Initialize database
mysql -u your_username -p < scms.sql
- Start the server
python run.py
- Access the application at
http://localhost:5000
- Members: member1 to member20 (Password: Test1234)
- Instructors: instructor1 to instructor5 (Password: Test1234)
- Managers: manager1 and manager2 (Password: Test1234)
swimming-club-management/
├── scmsapp/
│ ├── model/ # Database models and business logic
│ ├── route/ # URL routing and view functions
│ ├── static/ # CSS, JavaScript, and images
│ └── templates/ # HTML templates
├── requirements.txt # Project dependencies
├── run.py # Application entry point
└── scms.sql # Database schema and initial data
- Password hashing using Flask-Hashing
- Role-based access control
- Session management
- Input validation and sanitization
- Secure database operations
- Adjust MySQL Workbench settings for handling large datasets (>1000 rows)
- Disable 'Safe Updates' mode for proper SQL script execution
- Ensure proper configuration of database credentials in connect.py
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the Apache-2.0 license - see the Apache-2.0 license file for details.
For any queries or issues, please contact: ChanMeng666@outlook.com
Created and maintained by Chan Meng.