We live in a world where eating processed foods is easier than ever and is a major factor that contributes to being overweight or out of shape. People have two options to tackle this constant battle; going to a gym or playing sports. Playing sports is a fantastic way to stay fit and healthy, make friends, stay happy and some find it an enjoyable way to unleash their competitiveness.
Anyone new to sports, or a particular sport, are likely to have trouble finding someone to play with. Ideally, anyone should be able to find a sports session, join it and have fun. Planning your own events can be tedious, and even more-so when you are looking for people to play with.
To tackle this issue, I created a desktop app that allows anyone to create an account, and find sports events running in their area
Using this app, people seeking to find sports events will be able to browse events and edit their preferences. When an event is found to the users liking, the user can choose to register their participation. In essence, this means the event manager will be able to see the users name on a list of total participants for the event.
Based on previous event participation data and event browsing history, a recommendation algorithm shows events to users that they may be interested in. This algorithm is the fire of this application, it has been designed to let users know about events they are likely to like.
This algorithm is powered by event reviews and ratings, which makes the app as user-friendly as possible, to encourage everyone to play sports. Any user is able to run their own event, the app captures the necessary information, and every other user can find their event and participate, it's a win-win for everyone; players get the sports, event hosts get the players
(The project set up walkthrough assumes you have downloaded this project fully, frontend and backend!)
Front-end (app): CustomTKinter (built on top of TKinter)
Back-end (API): Flask
Database: PostgreSQL
Language: Python
The client side is built using CustomTKinter
To run the app,
- Go into the client folder,
cd client - Install the required libraries,
pip install -r requirements.py - Exit the client folder,
cd .. - Activate the client's virtual environment,
.\client\env\Scripts\activate - Launch the app,
python -m client.main
- The app has a default resolution of 1600x900, make sure your screen is large enough to run!
- The app does not have a responsive layout, it is not suited for mobile use
The API is built using Flask The database uses a local database from my local installation of PostgreSQL
The server and client were developed independently, but concurrently. This effectively means that the API has more features than the client uses.
To start the local server,
- Go into the server folder,
cd server - Install the required libraries,
pip install -r requirements.py - Activate the server's virtual environment,
.\env\Scripts\activate - Start the server & API,
flask run
This app was developed as part of a school project. Due to time constraints and the scope of the assignment, the app is not fully complete.
Although I do not intend to continue development, a significant amount of the final planned product has been developed - including the recommendation algorithm, hence why I have uploaded it to GitHub.