Skip to content
/ QMS Public

Quizzing application with Java Swing / mySQL, for teachers and students to create and solve quizzes for a class.

Notifications You must be signed in to change notification settings

BrAtUkA/QMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Swing MySQL
FlatLaf SHA-256 HikariCP

Quiz Management System

A desktop application for creating, managing, and taking quizzes
with role-based portals for teachers and students.

Quiz Management System UI

Teacher Portal

  • Create MCQ quizzes with multiple questions
  • Set time limits and submission deadlines
  • Assign quizzes to specific classes
  • View detailed attempt statistics
  • Track student performance across quizzes

Student Portal

  • Dashboard with available quizzes
  • Timed quiz attempts with countdown
  • Automatic submission on timeout
  • View results after deadline passes
  • Performance statistics and history

Core Capabilities

Feature Description
Role-Based Access Separate authentication and interfaces for teachers and students
Secure Passwords SHA-256 hashing with random salt, security questions for recovery
Connection Pooling HikariCP for efficient database connection management
Modern UI FlatLaf dark theme with custom components

Installation

Prerequisites

Requirement Version
Java JDK 17 or higher
MySQL Server 8.0+
Apache Ant 1.10+ (or NetBeans IDE)

Database Setup

  1. Run the schema script to create the database:

    mysql -u root -p < database/schema.sql
  2. Update src/config.properties with your database credentials:

    db.url=jdbc:mysql://localhost:3306/quiz_management
    db.user=root
    db.password=yourpassword

Build & Run

NetBeans IDE

  1. Open the project folder
  2. Right-click project → Clean and Build
  3. Right-click project → Run

Command Line

ant clean jar
java -jar dist/QuizSystem.jar

Project Structure

QuizSystem/
├── src/com/quizmanagement/
│   ├── db/                  # Data Access Objects
│   │   ├── DBConnection     # HikariCP connection pool
│   │   ├── QuizDAO          # Quiz CRUD operations
│   │   └── UserDAO          # User authentication
│   ├── main/                # Application entry
│   ├── objs/                # Domain models
│   │   ├── User, Quiz, Question, ClassObj
│   │   └── MCQQuestion
│   ├── ui/                  # Swing components
│   │   ├── LoginFrame       # Authentication
│   │   ├── student/         # Student portal
│   │   └── teacher/         # Teacher portal
│   └── util/                # Utilities
│       ├── PasswordUtils    # Hashing & verification
│       └── ConfigLoader     # Properties loader
├── database/
│   └── schema.sql           # Database setup script
├── libs/                    # JAR dependencies
└── nbproject/               # NetBeans configuration

Dependencies

Library Version Purpose
FlatLaf 3.5.4 Modern look and feel with dark theme
MySQL Connector/J 9.1.0 JDBC driver for MySQL
HikariCP 5.1.0 High-performance connection pooling
LGoodDatePicker 11.2.1 Date and time picker components
SLF4J Simple 2.0.9 Logging facade and implementation
JNA Platform 5.15.0 Native system integration

Configuration

Default settings in config.properties:

Property Default Description
db.url localhost:3306 MySQL server address
db.name quiz_management Database name
db.pool.size 10 HikariCP max connections

Notes

  • Quiz results remain hidden from students until the deadline passes
  • Passwords use SHA-256 with 16-byte random salt
  • Failed login attempts are logged via SLF4J
  • Window is undecorated with custom title bar controls

Semester Project - QMS in Java
Fall 2024

About

Quizzing application with Java Swing / mySQL, for teachers and students to create and solve quizzes for a class.

Topics

Resources

Stars

Watchers

Forks

Languages