GitHub - tahleho3968/ClubConnect-Java-App: University Clubs Management System - Java Swing desktop application with MySQL database. Features: club management, event planning, budget tracking, multi-role access (Admin/Leader/Member/Guest) · GitHub
Skip to content

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

🎯 ClubConnect - University Clubs Management System

Java Version Database License Platform

📌 Table of Contents

📖 Overview

ClubConnect is a comprehensive Java Swing desktop application designed to help universities and educational institutions efficiently manage student clubs, societies, and their activities. The system eliminates manual processes like spreadsheets and emails, providing a centralized platform for administrators, club leaders, and members.

Key Statistics

  • 👥 4 User Roles (Admin, Leader, Member, Guest)
  • 🏢 20+ Database Tables
  • 🎨 50+ UI Panels
  • 🔄 Automatic Database Backup
  • 📊 Real-time Analytics

Problem Solved

Universities struggle with:

  • ❌ Event scheduling conflicts
  • ❌ Lost membership applications
  • ❌ Poor budget tracking
  • ❌ Low student engagement
  • ❌ Administrative overhead

Our Solution

  • ✅ Centralized club management
  • ✅ Automated approval workflows
  • ✅ Real-time budget tracking
  • ✅ Multi-threaded notifications
  • ✅ Role-based access control

🚀 Quick Start

30-Second Setup

# 1. Download the JAR file
wget https://github.com/tahleho3968/ClubConnect-Java-App/releases/download/v1.0/club-connect.jar

# 2. Ensure MySQL is running
sudo systemctl start mysql  # Linux
# OR start XAMPP on Windows

# 3. Run the application
java -jar club-connect.jar

# 4. Login with default admin
# Username: ADMIN001
# Password: admin123

💡 First run automatically creates the database! No manual SQL setup required.

✨ Features

👑 Administrator Features

Feature Description
User Management Add, edit, delete, promote/demote users, reset passwords
Club Oversight Approve/reject club registrations, manage all clubs
Budget Management Review and approve budget requests from clubs
Event Monitoring View all events across the university
Analytics Dashboard Generate reports on club growth, event participation
System Administration Database backup/restore, system optimization
Notification System Send mass notifications to all users
Feedback Management Review and respond to user feedback

🎯 Club Leader Features

Feature Description
Club Management Update club info, mission, objectives, settings
Membership Management Approve/reject join requests, manage members
Event Planning Create events, request budgets, manage RSVPs
Budget & Finance Request budgets, track expenses, view financials
Communication Send announcements, create polls, send reminders
Reports Generate attendance, engagement, financial reports
Feedback View and respond to member feedback

👤 Member Features

Feature Description
Club Discovery Browse and join clubs, view club details
Event Participation RSVP to events, view upcoming events
Announcements View club announcements and updates
Feedback Submit feedback and suggestions to leaders
Profile Management Update profile, change password
Communication Participate in polls, view club communications
Notifications Receive and manage personal notifications

👀 Guest Features

Feature Description
Public Viewing Browse public clubs and events
Registration Register as a new member
Statistics View platform statistics

👥 User Roles

┌─────────────────────────────────────────────────────────┐
│                    CLUBCONNECT SYSTEM                   │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐         │
│  │   ADMIN    │  │   LEADER   │  │   MEMBER   │         │
│  │            │  │            │  │            │         │
│  │ • Full     │  │ • Club     │  │ • Join     │         │
│  │   Control  │  │   Manage   │  │   Clubs    │         │
│  │ • Approve  │  │ • Events   │  │ • RSVP     │         │
│  │   Clubs    │  │ • Budget   │  │ • Feedback │         │
│  │ • Reports  │  │ • Members  │  │ • Profile  │         │
│  └────────────┘  └────────────┘  └────────────┘         │
│                                                         │
│  ┌────────────┐                                         │
│  │   GUEST    │                                         │
│  │            │                                         │
│  │ • View     │                                         │
│  │   Public   │                                         │
│  │ • Register │                                         │
│  └────────────┘                                         │
└─────────────────────────────────────────────────────────┘

📸 Screenshots

🏠 Home Page

Home Page

👑 Admin Dashboard

Admin Dashboard

👤 Member Dashboard

Member Dashboard

🏗️ Technical Architecture

System Architecture Diagram

┌─────────────────────────────────────────────────────────────┐
│                      PRESENTATION LAYER                      │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐      │
│  │  Swing   │ │  Swing   │ │  Swing   │ │  Swing   │      │
│  │ JFrames  │ │ JPanels  │ │ JTables  │ │ Dialogs  │      │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘      │
├─────────────────────────────────────────────────────────────┤
│                      CONTROLLER LAYER                        │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  Event Listeners │ Action Handlers │ Session Manager │  │
│  └──────────────────────────────────────────────────────┘  │
├─────────────────────────────────────────────────────────────┤
│                       SERVICE LAYER                         │
│  ┌────────────┐ ┌────────────┐ ┌────────────┐            │
│  │  Auth      │ │  Notify    │ │  Export    │            │
│  │  Service   │ │  Service   │ │  Service   │            │
│  └────────────┘ └────────────┘ └────────────┘            │
├─────────────────────────────────────────────────────────────┤
│                     PERSISTENCE LAYER                       │
│  ┌──────────────────────────────────────────────────────┐  │
│  │         JDBC │ MySQL Connector │ File I/O            │  │
│  └──────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Technology Stack

Layer Technology
Frontend Java Swing, AWT
Backend Java (JDK 11+)
Database MySQL 8.0 / MariaDB 10.2+
Connectivity JDBC
Security SHA-256 Password Hashing
Concurrency Java Multithreading
Build Tool Maven (optional)

Design Patterns Used

  • MVC Pattern - Separation of concerns
  • Singleton - Session management, Database connection
  • Factory - UI panel creation
  • Observer - Notification system
  • DAO Pattern - Data access objects

💻 System Requirements

Minimum Requirements

Component Requirement
OS Windows 10 / Linux (Kali/Ubuntu) / macOS 11+
CPU 1.5 GHz dual-core
RAM 2 GB (4 GB recommended)
Storage 500 MB free space
Java JDK 11 or higher
Database MySQL 5.7+ / MariaDB 10.2+
Display 1366x768 resolution

Tested Environments

  • ✅ Windows 10 Pro (21H2)
  • ✅ Windows 11 Home/Pro
  • ✅ Kali Linux 2024.1+
  • ✅ Ubuntu 22.04 LTS
  • ✅ Debian 12

🔧 Installation Guide

Windows Installation

# 1. Install Java
Download from: https://adoptium.net/
Run installer, set JAVA_HOME

# 2. Install XAMPP (includes MySQL)
Download from: https://www.apachefriends.org/
Run installer, start MySQL service

# 3. Download ClubConnect
Download club-connect.jar from Releases

# 4. Run the application
java -jar club-connect.jar

Linux Installation (Kali/Ubuntu/Debian)

# 1. Install Java
sudo apt update
sudo apt install openjdk-11-jre -y
sudo apt install openjdk-11-jdk -y

# 2. Install MariaDB/MySQL
sudo apt install mariadb-server -y

# 3. Start MySQL service
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 4. Download ClubConnect
wget https://github.com/tahleho3968/ClubConnect-Java-App/releases/download/v1.0/club-connect.jar

# 5. Run the application
java -jar club-connect.jar

macOS Installation

# 1. Install Java using Homebrew
brew install openjdk@11

# 2. Install MySQL
brew install mysql
brew services start mysql

# 3. Download and run
curl -L -o club-connect.jar https://github.com/tahleho3968/ClubConnect-Java-App/releases/download/v1.0/club-connect.jar
java -jar club-connect.jar

📖 Usage Guide

First Time Setup

  1. Launch the application

    java -jar club-connect.jar
  2. Database initialization (automatic)

    • Application detects missing database
    • Creates tahlehopaki2333585 database
    • Creates all 20+ tables
    • Inserts default admin account
  3. Login with default credentials

    Username: ADMIN001
    Password: admin123
    
  4. Change admin password (recommended)

    • Go to Profile → Change Password

Common Workflows

As Admin: Approve a New Club

  1. Login as ADMIN001
  2. Navigate to Club Management
  3. Click Pending Clubs tab
  4. Review club details
  5. Click Approve or Reject

As Leader: Create an Event

  1. Login with leader credentials
  2. Go to Event Management
  3. Click Create New Event
  4. Fill event details (name, date, location, budget)
  5. Click Submit for Approval

As Member: Join a Club

  1. Login with member credentials
  2. Go to My ClubsAvailable Clubs
  3. Browse clubs
  4. Click Join on desired club
  5. Wait for leader approval

🗄️ Database Schema

Core Tables

-- Main tables in tahlehopaki2333585 database
users           -- User accounts (admins, leaders, members)
clubs           -- Registered clubs
club_memberships -- Member-club relationships
events          -- Club events
event_rsvps     -- Event attendance tracking
budgets         -- Budget records
budget_requests -- Budget approval requests
notifications   -- User notifications
feedback        -- User feedback and suggestions
announcements   -- Club announcements
polls           -- Member polls
poll_votes      -- Poll responses

ER Diagram

┌─────────┐     ┌──────────────┐     ┌─────────┐
│  users  │────<│club_membership│────>│  clubs  │
└─────────┘     └──────────────┘     └─────────┘
     │                  │                  │
     │                  │                  │
     ▼                  ▼                  ▼
┌─────────┐     ┌─────────┐          ┌─────────┐
│ feedback│     │  events │──────────│ budgets │
└─────────┘     └─────────┘          └─────────┘

🔍 Troubleshooting

Common Issues and Solutions

Issue Solution
MySQL connection error Ensure MySQL service is running: sudo systemctl start mysql
"Unknown database" error Delete database and restart - app recreates it automatically
Java not found Install Java: sudo apt install default-jre
GUI not displaying on Linux Set display: export DISPLAY=:0
Login fails Use default credentials first, then reset password
Backup fails Ensure write permissions in application directory
Slow performance Increase memory: java -Xmx1024m -jar club-connect.jar

Diagnostic Commands

# Check Java version
java -version

# Check MySQL status
sudo systemctl status mysql

# Test database connection
mysql -u root -p -e "SHOW DATABASES;"

# Check JAR integrity
jar tf club-connect.jar | head -20

🛠️ Development

Setting Up Development Environment

# Clone repository
git clone https://github.com/tahleho3968/ClubConnect-Java-App.git
cd ClubConnect-Java-App

# Extract source code
jar xf club-connect.jar

# Import to IDE (NetBeans/IntelliJ)
# Add MySQL Connector JAR to classpath

# Make changes and rebuild
javac -cp ".:mysql-connector-j-8.4.0.jar" com/clubconnect/main/Main.java
jar cfm club-connect.jar META-INF/MANIFEST.MF .

Building from Source

# Compile all Java files
javac -d build -cp "lib/*" src/main/java/**/*.java

# Create JAR with manifest
jar cfm club-connect.jar META-INF/MANIFEST.MF -C build .

# Run the built JAR
java -jar club-connect.jar

Project Structure

club-connect/
├── club-connect.jar          # Main executable
├── README.md                 # Documentation
├── LICENSE                   # MIT License
├── database_backups/         # Auto-generated backups
│   └── backup_clubconnect_latest.sql
├── src/                      # Source code (extracted)
│   ├── com/clubconnect/
│   ├── database/
│   ├── service/
│   └── ui/
└── lib/                      # Dependencies
    └── mysql-connector-j-8.4.0.jar

🚀 Future Enhancements

Planned Features

  • Mobile Application - Android/iOS companion app
  • Email Integration - Send notifications via email
  • Payment Gateway - Club membership fee collection
  • Calendar Export - Export events to Google Calendar
  • API REST - Backend API for third-party integration
  • Real-time Chat - Instant messaging between members
  • Document Management - Upload/download club documents
  • Analytics Dashboard - Enhanced data visualization

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

🎓 Academic Context

This project was developed as the Java End Assessment at Botho University (2025).

Demonstrated Competencies

  • Object-Oriented Programming (OOP)
    • Encapsulation, Inheritance, Polymorphism
  • MVC Architecture
    • Clear separation of concerns
  • Database Integration
    • JDBC, Connection pooling, Transactions
  • Multithreading
    • Background notifications, Concurrent operations
  • GUI Development
    • Java Swing, Event handling, Custom components
  • Session Management
    • User authentication, Role-based access
  • File I/O
    • CSV export, Database backup/restore
  • Error Handling
    • Try-catch blocks, Custom exceptions
  • Design Patterns
    • Singleton, Factory, Observer, DAO

Assessment Criteria Met

Criteria Status
Complete Documentation
UML Diagrams
ER Diagram
Working Application
Testing Evidence
Professional README

📞 Support

Getting Help

Reporting Bugs

When reporting bugs, please include:

  1. Operating system and version
  2. Java version (java -version)
  3. Steps to reproduce
  4. Error messages or screenshots

📄 License

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

MIT License

Copyright (c) 2025 Tahleho Paki

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions...

Full license text available in LICENSE file.

👨‍💻 Author

Tahleho Paki

Acknowledgments

  • Supervisor: Botho University Faculty
  • Libraries: MySQL Connector-J, Java Swing
  • Tools: NetBeans IDE, Git, GitHub

⭐ Show Your Support

If this project helped you or you found it interesting:

  • Star the repository on GitHub
  • 🍴 Fork it to contribute
  • 📢 Share it with others
  • 📝 Leave feedback through Issues

📊 Project Statistics

┌────────────────────────────────────────────────────┐
│              PROJECT STATISTICS                     │
├────────────────────────────────────────────────────┤
│  📁 Total Files:     100+                          │
│  📝 Lines of Code:   15,000+                       │
│  🗄️  Database Tables: 20+                          │
│  🎨 UI Panels:       50+                           │
│  👥 User Roles:      4                             │
│  🔧 Dependencies:    2                             │
│  📦 JAR Size:        13.87 MB                      │
│  ⏱️  Dev Time:        3 months                      │
└────────────────────────────────────────────────────┘

🎯 Quick Commands Reference

# Run application
java -jar club-connect.jar

# Run with more memory
java -Xmx1024m -jar club-connect.jar

# Extract JAR contents
jar xf club-connect.jar

# View JAR contents
jar tf club-connect.jar

# Create backup manually
java -cp club-connect.jar database.DatabaseExporter

# Check database connection
mysql -u root -p -e "USE tahlehopaki2333585; SHOW TABLES;"

Built with ☕ and ❤️ by Tahleho Paki

Last Updated: 2026-05-16

About

University Clubs Management System - Java Swing desktop application with MySQL database. Features: club management, event planning, budget tracking, multi-role access (Admin/Leader/Member/Guest)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors