Giter Site home page Giter Site logo

lukewait / gc-esports-app2 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 5.06 MB

Provides a GUI interface to simplify the management of e-sports competition data stored on a database. This Java application was developed as part of a TAFE QLD assignment.

License: MIT License

Java 100.00%
gui java sql competition-manager csv-export esports-management

gc-esports-app2's Introduction

Gold Coast E-Sports Competition App 2

Description

This application helps manage competition data effectively using a user-friendly GUI. The app interacts with a SQL relational database to manage teams, matches, and results.

App Screenshot

Table of Contents

Installation

Prerequisites

Ensure that Java JDK 17 is installed on your system:

  • Windows: Download and install Java JDK 17.
  • Linux: Install Java JDK 17 using your package manager:
    sudo apt-get install openjdk-17-jdk   # For Debian-based systems

Set Up MySQL Server

  • Windows:

    1. Download the MySQL installer from the MySQL Community Downloads page.
    2. Run the installer and follow the prompts to complete the installation.
    3. During installation, you can choose to run the MySQL Server as a Windows service. Otherwise you can start it manually from the Services app or by running:
    net start mysql
  • Linux: Download the package and run the service:

    sudo apt-get install mysql-server  # For Debian-based systems
    sudo systemctl start mysql
    sudo systemctl status mysql   # Check if the service is running

Import the Database

Once the SQL server is running, you can import the gc_esports.sql file to set up the database. Replace username (default: root) and path/to/gc_esports.sql with your MySQL username and the path to the SQL dump file:

mysql -u username -p < path/to/gc_esports.sql

Configure the db_access.config File

The db_access.config file contains the connection string for the database service. It is currently set to use the default MySQL credentials running on localhost/127.0.0.1. Ensure these settings match your database credentials for proper application functionality.:

dbURL=jdbc:mysql://localhost:3306/gc_esports?serverTimezone=UTC
usrID=root
usrPWD=

Alternative SQL Server Options

You can opt for a web server solution like XAMPP or WAMP for ease of use. These solutions come with tools like phpMyAdmin, providing a GUI for importing and managing databases.

Executable

  1. Download the latest release from the releases page.
  2. Extract the contents to a desired location.
  3. Run the gc-esports-app2.jar file:
    • Windows: Simply double-click the gc-esports-app2.jar file to run it.
    • Linux: Make the .jar file executable and run it:
      chmod +x gc-esports-app2.jar
      java -jar gc-esports-app2.jar

From Source

To install and run the application from source:

  1. Clone the repository:
    git clone https://github.com/LukeWait/gc-esports-app2.git
    cd gc-esports-app2
  2. Open the project directory with Apache NetBeans or another compatible IDE to build and run the application.

Usage

  1. Ensure the gc_esports database is running on an accessible server with the correct access details entered in db_access.config.
  2. Launch the application.
  3. Use the provided functions to interact with the data:
    • Create and view competition and event data.
    • Create, view, and update team data.
    • Note: There is currently no option to delete data.

Application Functions

  • Display Competition Results: View results for all competitions, with the option to filter by event or team.
  • Export Competition Results: Export the displayed competition results as a CSV file.
  • Display Leaderboard: Show a leaderboard for the entire competition or a single event based on the selected filter.
  • Export Leaderboard: Export the currently displayed leaderboard as a CSV file.
  • Add New Competition Results: Input and save results for new competitions.
  • Add New Team: Register a new team along with their contact information.
  • Update Existing Team: Modify the details of an already registered team.
  • Add New Event: Create and save details for a new event within the competition.

Development

This project was developed using Apache NetBeans, an integrated development environment (IDE) that facilitates Java application development. If using a different IDE, you may need to configure the environment to ensure compatibility with the project.

Project Structure

gc-esports-app2/
├── nbproject/                # NetBeans settings
├── data/                     # CSV export files
├── lib/                      # JAR libraries
├── sql/                      # SQL database schema
├── src/
│   ├── images/               # GUI design elements
│   └── gcesportsapp2/        # Project source code
│       ├── GCEsportsApp2.java
│       ├── GCEsportsApp2.form
│       ├── DbRead.java
│       └── DbWrite.java
├── build.xml                 # Build configuration
├── manifest.mf               # Manifest file for the JAR
└── db_access.config          # Database connection details

SQL Database Structure

gc_esports Database
└── Tables:
    ├── event
    │   ├── name (PK)
    │   ├── date
    │   └── location
    │
    ├── game
    │   ├── name (PK)
    │   └── type
    │
    ├── team
    │   ├── name (PK)
    │   ├── contact
    │   ├── phone
    │   └── email
    │
    └── competition
        ├── competitionID (PK)
        ├── eventName (FK -> event.name)
        ├── gameName (FK -> game.name)
        ├── team1 (FK -> team.name)
        ├── team2 (FK -> team.name)
        ├── team1Points
        └── team2Points

Creating New Releases

  • Build the Application: Use your IDE to compile and package the application into a .jar executable, which will create a dist folder containing the final distributable files.
  • Create data Directory: Create an empty directory called data in the dist folder for potential CSV exports.
  • Include db_access.config File: Copy the config file into the dist folder, as it is required to establish a database connection.
  • Include gc_access.sql File: You may want to include the SQL dump in the dist folder so users can re-create the database.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

This project was developed as part of an assignment at TAFE Queensland for subject ICTPRG430.

Project requirements and initial GUI design/codebase provided by Hans Telford.

Source Code

The source code for this project can be found in the GitHub repository: https://github.com/LukeWait/gc-esports-app2.

Dependencies

  • Java JDK 17
  • MySQL Connector/J 8.0.28 (included in project files)

gc-esports-app2's People

Contributors

lukewait avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.