A web application that allows users to create tournaments, join tournaments, track tournament progress, and view tournament results.
JavaScript
Backend:
- Node.js
- MySQL
- Express (server)
- Sequelize (ORM)
- Nodemailer (mail)
Frontend:
- React
- Bootstrap
- HTML
- CSS
- React-Leaflet (openstreet map)
-
Clone the repository
git clone git@github.com:istepka/torunamently.git
-
Install dependencies for the backend and frontend
cd backend npm install cd ../frontend npm install
-
Make sure you have MySQL installed and running. If not, follow the instructions below.
-
Set up
email_config.json
file inbackend/
folder. Important thing is that the email you use does support smtp from third party applications (i.e., is not that secure, I used wp.pl){ "user": "EMAIL", "password": "PASSWORD" }
-
Install MySQL
sudo apt install mysql-server
-
Check MySQL status. It should be active and running.
sudo service mysql status
-
Check the network status
sudo ss -tap | grep mysql
-
If MySQL is not running, correctly, restart it.
sudo service mysql restart
-
If you make changes to the MySQL configuration file, restart MySQL with the following command:
sudo systemctl restart mysql.service
-
Set up config file:
db_config.json
inbackend/
folder.{ "host": "localhost", "user": "USERNAME", "password": "ADMIN", "port": 3306, "database": "tournamently" }
-
Run the following commands in mysql shell to create database structure:
CREATE DATABASE tournamently;
Run scripts from
scripts/
folder in the following order:mysql -u USERNAME -p tournamently < set_up.sql mysql -u USERNAME -p tournamently < populate.sql
To reset the database, run the following command:
mysql -u USERNAME -p tournamently < anihilate.sql
And then run the scripts again.
This is just a draft that was created to get a better understanding of the application structure. The final app is a bit more complex, but I don't want to create a new schema becuase it would take too much time. The schema below is a good representation of the application structure.
Verification email
MIT License