A desktop application for creating, managing, and taking quizzes
with role-based portals for teachers and students.
|
|
| 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 |
| Requirement | Version |
|---|---|
| Java JDK | 17 or higher |
| MySQL Server | 8.0+ |
| Apache Ant | 1.10+ (or NetBeans IDE) |
-
Run the schema script to create the database:
mysql -u root -p < database/schema.sql -
Update
src/config.propertieswith your database credentials:db.url=jdbc:mysql://localhost:3306/quiz_management db.user=root db.password=yourpassword
|
NetBeans IDE
|
Command Line ant clean jar
java -jar dist/QuizSystem.jar |
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
| 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 |
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 |
- 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
