- Overview
- Quick Start
- Features
- User Roles
- Screenshots
- Technical Architecture
- System Requirements
- Installation Guide
- Usage Guide
- Database Schema
- Troubleshooting
- Development
- Future Enhancements
- Academic Context
- Author
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.
- 👥 4 User Roles (Admin, Leader, Member, Guest)
- 🏢 20+ Database Tables
- 🎨 50+ UI Panels
- 🔄 Automatic Database Backup
- 📊 Real-time Analytics
Universities struggle with:
- ❌ Event scheduling conflicts
- ❌ Lost membership applications
- ❌ Poor budget tracking
- ❌ Low student engagement
- ❌ Administrative overhead
- ✅ Centralized club management
- ✅ Automated approval workflows
- ✅ Real-time budget tracking
- ✅ Multi-threaded notifications
- ✅ Role-based access control
# 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.
| 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 |
| 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 |
| 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 |
| Feature | Description |
|---|---|
| Public Viewing | Browse public clubs and events |
| Registration | Register as a new member |
| Statistics | View platform statistics |
┌─────────────────────────────────────────────────────────┐
│ CLUBCONNECT SYSTEM │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ ADMIN │ │ LEADER │ │ MEMBER │ │
│ │ │ │ │ │ │ │
│ │ • Full │ │ • Club │ │ • Join │ │
│ │ Control │ │ Manage │ │ Clubs │ │
│ │ • Approve │ │ • Events │ │ • RSVP │ │
│ │ Clubs │ │ • Budget │ │ • Feedback │ │
│ │ • Reports │ │ • Members │ │ • Profile │ │
│ └────────────┘ └────────────┘ └────────────┘ │
│ │
│ ┌────────────┐ │
│ │ GUEST │ │
│ │ │ │
│ │ • View │ │
│ │ Public │ │
│ │ • Register │ │
│ └────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 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 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
| 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) |
- ✅ MVC Pattern - Separation of concerns
- ✅ Singleton - Session management, Database connection
- ✅ Factory - UI panel creation
- ✅ Observer - Notification system
- ✅ DAO Pattern - Data access objects
| 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 |
- ✅ Windows 10 Pro (21H2)
- ✅ Windows 11 Home/Pro
- ✅ Kali Linux 2024.1+
- ✅ Ubuntu 22.04 LTS
- ✅ Debian 12
# 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# 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# 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-
Launch the application
java -jar club-connect.jar
-
Database initialization (automatic)
- Application detects missing database
- Creates
tahlehopaki2333585database - Creates all 20+ tables
- Inserts default admin account
-
Login with default credentials
Username: ADMIN001 Password: admin123 -
Change admin password (recommended)
- Go to Profile → Change Password
- Login as
ADMIN001 - Navigate to Club Management
- Click Pending Clubs tab
- Review club details
- Click Approve or Reject
- Login with leader credentials
- Go to Event Management
- Click Create New Event
- Fill event details (name, date, location, budget)
- Click Submit for Approval
- Login with member credentials
- Go to My Clubs → Available Clubs
- Browse clubs
- Click Join on desired club
- Wait for leader approval
-- 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┌─────────┐ ┌──────────────┐ ┌─────────┐
│ users │────<│club_membership│────>│ clubs │
└─────────┘ └──────────────┘ └─────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ feedback│ │ events │──────────│ budgets │
└─────────┘ └─────────┘ └─────────┘
| 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 |
# 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# 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 .# 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.jarclub-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
- 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
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
This project was developed as the Java End Assessment at Botho University (2025).
- ✅ 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
- 📧 Email: tahleho.paki@bothouniversity.ac.bw
- 🐙 GitHub Issues: Create an issue
- 📚 Documentation: See
docs/folder
When reporting bugs, please include:
- Operating system and version
- Java version (
java -version) - Steps to reproduce
- Error messages or screenshots
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.
- 🎓 Student at Botho University
- 📍 Location: Lesotho
- 📧 Email: tahleho.paki@bothouniversity.ac.bw
- 🐙 GitHub: @tahleho3968
- 💼 LinkedIn: Tahleho Paki
- Supervisor: Botho University Faculty
- Libraries: MySQL Connector-J, Java Swing
- Tools: NetBeans IDE, Git, GitHub
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 │
├────────────────────────────────────────────────────┤
│ 📁 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 │
└────────────────────────────────────────────────────┘
# 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



