Skip to content

sankeer28/Club_Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Try out the Live Demo 🌐

This project focuses on managing a small amateur club where members gather for regular practices, led by an amateur coach. The club meets weekly, and members can attend as they wish. However, they are required to pay for each practice session. The treasurer handles the club's finances, including collecting payments, paying the coach, and covering monthly expenses like rent.

$\Huge\textsf{{\color[rgb]{0.0, 0.0, 1.0}Te}{\color[rgb]{0.1, 0.0, 0.9}ch}{\color[rgb]{0.2, 0.0, 0.8}no}{\color[rgb]{0.3, 0.0, 0.7}lo}{\color[rgb]{0.4, 0.0, 0.6}gi}{\color[rgb]{0.5, 0.0, 0.5}es~}{\color[rgb]{0.6, 0.0, 0.4}us}{\color[rgb]{0.7, 0.0, 0.3}ed}}$

  • Python
  • Flask: web framework for Python
  • HTML5 and CSS
  • JavaScript
  • OpenStreetMap and Nominatim API: Integrated for geocoding and reverse geocoding
  • CSV: Data storage
  • Secure Cookies / Secure Tokens / Session Keys: Implemented for session management and security

$\Huge\textsf{{\color[rgb]{1.0, 0.6, 0.0}Ke}{\color[rgb]{1.0, 0.7, 0.0}y~}{\color[rgb]{1.0, 0.8, 0.0}Fe}{\color[rgb]{1.0, 0.9, 0.0}at}{\color[rgb]{1.0, 0.7, 0.0}ur}{\color[rgb]{1.0, 0.6, 0.0}es}}$

1. User Management

  • Registration: New members can register an account with their details.
  • Login: Members, coaches, and the treasurer can log in with their credentials.
  • Role-based Access: Each user has specific privileges based on their role.

2. Practice Management

  • Scheduling: Coaches can schedule practice sessions, specifying the date, time, and location.
  • Practice Attendance: The system allows coaches to take members' attendance during sessions.
  • Payment for Practices: The app allows Members to schedule and pay for practice sessions.

3. Financial Management

  • Track Finances: The treasurer can view the club's income statement, including revenue and expenses.
  • Debt Tracking: Outstanding debts are logged, allowing the treasurer to prioritize payments.
  • Payment Reminders: Reminders can be sent to members with outstanding payments with Gmail integration.

$\Huge\textsf{{\color[rgb]{1.0, 0.0, 0.0}Us}{\color[rgb]{1.0, 0.2, 0.0}a}{\color[rgb]{1.0, 0.4, 0.0}g}{\color[rgb]{1.0, 0.6, 0.0}e~}{\color[rgb]{1.0, 0.8, 0.0}In}{\color[rgb]{1.0, 0.6, 0.0}s}{\color[rgb]{1.0, 0.4, 0.0}t}{\color[rgb]{1.0, 0.2, 0.0}r}{\color[rgb]{1.0, 0.0, 0.0}u}{\color[rgb]{0.9, 0.0, 0.2}c}{\color[rgb]{0.8, 0.0, 0.4}t}{\color[rgb]{0.7, 0.0, 0.6}i}{\color[rgb]{0.6, 0.0, 0.8}o}{\color[rgb]{0.5, 0.0, 1.0}n}{\color[rgb]{0.5, 0.0, 0.9}s}}$

  • You are expected to have a relatively new version of Python and Git installed
  1. Clone the repository to your local machine.
 git clone https://github.com/sankeer28/Club_Manager.git
 cd Club_Manager
  1. Install the necessary dependencies. Was tested on Python 3.11.6, Should work on modern Python versions
 pip install -r requirements.txt
  1. Open the Flask folder
 cd Flask
  1. Run the application
 flask run
  1. You will get a message like * Running on http://127.0.0.1:5000 ctrl + click on it or copy-paste into browser. Mac users may encounter issues where AirPlay Receiver is using port 5000, there are tutorials online on how to fix.
  2. Register or log in as a member, coach, or treasurer.
  3. Explore the available features based on your role.
If the above does not work for you
  1. download as ZIP
  2. Unzip the file
  3. open the Club_Manager-main folder
  4. open the 'Flask' folder in VSCode or Pycharm
  5. click run on app.py
  6. move users.csv and scheduled_practices.csv outside the Flask folder into the Club_Manager-main folder if you run into errors
$\Huge\textsf{{\color[rgb]{0.0, 0.5, 0.0}V}{\color[rgb]{0.1, 0.6, 0.1}i}{\color[rgb]{0.2, 0.7, 0.2}d}{\color[rgb]{0.3, 0.8, 0.3}e}{\color[rgb]{0.4, 0.9, 0.4}o~}{\color[rgb]{0.5, 1.0, 0.5}D}{\color[rgb]{0.4, 0.9, 0.4}e}{\color[rgb]{0.3, 0.8, 0.3}m}{\color[rgb]{0.2, 0.7, 0.2}o}}$
project.mp4