Skip to content

Create ExamAttempt entity model and Data Access Object #18

@aolguin89

Description

@aolguin89

User Story

As a developer
I want to implement the ExamAttempt entity and DAO layer
So that the application can track student exam attempts and scores

Description

Implement ExamAttempt POJO and DAO layer for managing student exam attempts.

Tasks

ExamAttempt Model (POJO)

  • Create ExamAttempt.java in model/ package
  • Add all fields matching exam_attempts table schema
  • Implement constructors (empty + full)
  • Implement getters and setters
  • Override toString() for debugging
  • Add Javadoc documentation

ExamAttempt DAO Interface

  • Create ExamAttemptDAO.java interface in dao/ package
  • Define method signatures for attempt operations
  • Add Javadoc documentation

ExamAttempt DAO Implementation

  • Create ExamAttemptDAOImpl.java in dao/ package
  • Implement findById(int id)
  • Implement findByExam(int examId) - all attempts for an exam
  • Implement findByUser(int userId) - user's attempt history
  • Implement findByUserAndExam(int userId, int examId) - specific user's attempts for exam
  • Implement countAttempts(int userId, int examId) - count attempts for validation
  • Implement create(ExamAttempt attempt)
  • Implement update(ExamAttempt attempt) - for updating score/status
  • Handle SQL exceptions properly
  • Close resources correctly

Testing

  • Test findByUser() returns user's history
  • Test findByUserAndExam() filters correctly
  • Test countAttempts() returns accurate count
  • Test create() inserts with generated ID
  • Test update() modifies score and status

Acceptance Criteria

  • ExamAttempt.java includes all fields from schema
  • ExamAttemptDAO implements all operations
  • countAttempts() works for max attempt validation
  • All methods handle errors gracefully
  • Resources closed properly
  • Code includes Javadoc

Metadata

Metadata

Assignees

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions