/etuScore

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

EtuSkor

This project aims to make volleyball matches even more exciting by introducing a betting system for our university. It offers a free and fun experience for registered students who can participate by predicting match results. Registered users earn coffee beans, and they can earn extra beans by referring others. The betting system requires at least two users to join a match for a bet to be valid. The winning user receives the entire accumulated balance on the table.

Team Members

Features

  • Registration with "@etu.edu.tr" email address
  • Earning coffee beans for registered students
  • Referral system to earn extra coffee beans
  • Placing bets on matches
  • Minimum two users required for a valid bet
  • Winner receives the accumulated balance
  • Leaderboard with rewards for top three individuals

Web App Showcase

Match Calendar

etuscore.mp4

If above video is broken https://youtu.be/8f1vHFwHP60

Match Page

image1

LeaderBoard

image4

Groups

image3

Profile Page

image2

Firebase

image0

Getting Started

To get started with this project:

  1. Clone the repository: git clone https://github.com/TOBB-ETU-CS-Community/etuScore.git
  2. Install the dependencies: npm install
  3. Configure the Firebase credentials in the project
  4. Run the development server: npm start

Contributing

We welcome contributions from everyone! If you would like to contribute to this project, please follow these steps:

  1. Fork the repository and clone it to your local machine.
  2. Create a new branch for your feature or bug fix: git checkout -b my-new-feature.
  3. Make your changes and test thoroughly.
  4. Commit your changes: git commit -am 'Add some feature'.
  5. Push to the branch: git push origin my-new-feature.
  6. Open a pull request (PR) on GitHub and provide a clear description of your changes.

Issues

If you encounter any bugs, issues, or have any suggestions, please open an issue on the GitHub repository. We appreciate detailed bug reports, including steps to reproduce the issue.

Security

We take security seriously. If you discover any security vulnerabilities or breaches, please reach out to Hüseyin Pekkan at hpekkan@etu.edu.tr or Berkay Yıldız at Berkay.yildiz@etu.edu.tr. Please avoid disclosing the vulnerability publicly until we have had a chance to address it.

Firebase Structure

Collection: users

Field Type
balance number (integer)
bets array of strings
isAdmin boolean
isReferred boolean
isVerified boolean
userId string
username string

Collection: rooms

Field Type
roomId string
startDate string
availableTeam string
betAmount number
createdAt string (ISO 8601)
creator string
creatorName string
creatorTeam string
gameFinished boolean
gameTime string
matchId string
name string
participant string
participantName string

Collection: groups

Field Type
createdAt string (formatted date)
data number
grup1 array of strings (size 6)
grup2 array of strings (size 6)
grup3 array of strings (size 6)
grup4 array of strings (size 6)
grup5 array of strings (size 6)

Collection: matches

Field Type
data array of objects
matchNumber string
date string
time string
group string
team1 string
team2 string
result string