Tagathon is a software for marking beats in songs. It consists of three main components: the server, the database, and the client. This README provides instructions for setting up and running each component.
The repository contains the following directories:
server
: Contains the server application.database
: Contains scripts and configurations for the database.client
: Contains the client application.
The server component handles communication between clients and the database. Follow these steps to set up and run the server:
-
Ensure that Python 3.12.3 is installed on your system.
-
Navigate to the
server
directory. -
Install the required dependencies by running:
pip install -r requirements.txt
-
Configure the server's IP address and port number in the code if necessary.
-
Start the server by running:
python server.py
The database component stores the necessary data for the application. Follow these steps to set up and initialize the database:
- Navigate to the
database
directory. - Initialize the database using the provided SQL script (
init_db.sql
). You may need to adjust the script based on your database management system (DBMS). - Optionally, populate the database with initial data using the provided SQL script (
dummy_data.sql
).
The client component provides a user interface for interacting with the server. Follow these steps to set up and run the client application:
-
Ensure that Python (v3.12.3) and Tkinter are installed on your system. Use the following command to install Tkinter on Fedora or RPM-based Linux distributions:
sudo dnf install python3-tkinter
-
Navigate to the
client
directory. -
Install the required dependencies by running:
pip install -r requirements.txt
-
Configure the server's IP address and port number in the code if necessary.
-
Start the client application by running:
python client.py
- Start the database to ensure that it is accessible by the server.
- Start the server application to handle incoming client requests.
- Finally, run the client application to interact with the server.
Tagathon can be deployed in a local or distributed environment. It is designed to function seamlessly in either environment. While the maximum number of users it can support simultaneously has not been tested, it has been observed to function perfectly with up to 10 users concurrently.