Skip to content

tanjy142857-max/java-assessment-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Assessment Feedback System

A Java Swing desktop application for academic management — handling classes, modules, assessments, grading, submissions, and feedback across four user roles. A coursework project.

Features

Admin Staff

  • User CRUD across all roles (Admin, Academic Leader, Lecturer, Student)
  • Approve or reject student registration requests
  • Manage classes and assign lecturers to modules
  • Configure the grading system (grade boundaries, letter grades)

Academic Leader

  • CRUD modules and assign lecturers to module classes
  • Monitor class enrollment and lecturer assignments
  • Generate and export reports: module-level, class-level, and overall statistics

Lecturer

  • Design assessments (assignments, quizzes, exams, projects) with weightage caps
  • Enter and update student grades with automatic letter-grade calculation
  • Provide per-assessment feedback to students
  • Live student search and grade overview per class

Student

  • Register for and drop classes (with module-level duplicate prevention)
  • Submit assessments with optional notes
  • View grades, lecturer feedback, and GPA breakdown
  • Respond to feedback with comments
  • Export personal performance reports

All Roles

  • Profile management (name, email, password)
  • Dashboard with role-specific statistics

Tech Stack

Layer Technology
Language Java 21 (SE, no external dependencies)
UI Swing (JFrame, JPanel, CardLayout)
Persistence Flat pipe-delimited text files under data/
Build NetBeans Ant project
Auth SHA-256 + per-user salt password hashing
Concurrency ReentrantLock on file writes

Architecture

Presentation (Swing UI)  →  Services (business logic)  →  Models (domain entities)  →  FileManager (persistence)
       |                          |
  Constants (enums)          Validator (input validation)
  • 18 UI panels organized by role under ui/admin/, ui/academic/, ui/lecturer/, ui/student/
  • 10 service classes mediating between UI and file-based storage
  • 12 model classes representing domain entities
  • Shared utilities: UserParser, PasswordHasher, FileManager, Validator

Quick Start

Prerequisites

  • Java 17 or higher

Run

Windows — double-click run.bat

Terminal:

cd aftereditingmanageclassfinal
javac -encoding UTF-8 -d build/classes -sourcepath src src/main/Main.java
java -cp build/classes main.Main

Default Account

Role Username Password
Admin Staff admin admin123

Other test accounts are preloaded in data/users.txt.

Project Structure

src/
├── constants/     # Enums and file path constants
├── main/          # Entry point (Main.java)
├── models/        # Domain entities (User, Module, Class, Assessment, etc.)
├── services/      # Business logic layer
├── ui/            # Swing UI
│   ├── admin/     # Admin dashboard and panels
│   ├── academic/  # Academic Leader dashboard and panels
│   ├── lecturer/  # Lecturer dashboard and panels
│   ├── student/   # Student dashboard and panels
│   └── common/    # Shared UI components
└── utils/         # FileManager, Validator, PasswordHasher, UserParser
data/              # Pipe-delimited flat-file persistence

Design Decisions

  • Flat-file persistence was chosen to eliminate external database dependencies — the system is fully self-contained and runs immediately after clone
  • Cascading deletes ensure referential integrity when modules, classes, or assessments are removed
  • Password hashing uses SHA-256 with a 16-byte random salt per user; legacy plain-text passwords are auto-upgraded on first login
  • Weightage enforcement prevents assessment total from exceeding 100% per module; GPA calculation requires exactly 100% to include a module

About

Java Swing academic management system with four user roles. APU coursework project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors