I have made the functionality for the teacher to create courses and view existing courses. You can handle the quiz viewing, creating, editing, and deleting things to be done from the teacher′s side. I have commented //to be continued towards the bottom of my teacher class. You can start working on it from there. only the quiz viewing, editing, and deleting things for the teachers have to be done.
The second option is to implement a learning management system quiz tool. Online quizzes allow teachers to present information in a variety of formats to evaluate student progress. Looking for an example? Navigate to the Brightspace quizzes! Reminder: You can assume that only one user is accessing the application at a time. A teacher might log in, create a quiz, then log out. A student could then log in and complete the quiz. Your implementation must have the following: Core • Data must persist regardless of whether or not a user is connected. If a user disconnects and reconnects, their data should still be present. • Descriptive errors should appear as appropriate. For example, if someone tries to log in with an invalid account. The application should not crash under any circumstances. • Users can create, edit, and delete accounts for themselves. o The attributes you collect as part of account creation are up to you. o Users should be required to either create an account or sign in before gaining access to the application. o Whichever identifier you maintain for the user must be unique. • Quizzes o Any number of quizzes can be added to a course. o Quizzes will have one or more multiple choice questions. o Quiz questions will appear on the same page in the order they are added to the quiz. • Teachers o Teachers can create, edit, and delete quizzes. o Teachers can view student submissions for the quiz. • Students o Students can take any created quiz. Students can select their responses to each question. o After completing a quiz, students can submit it. Each submission must be timestamped. Selections • File imports. o All file imports must occur as a prompt to enter the file path. o Teachers can import a file with the quiz title and quiz questions to create a new quiz. o Students can attach a file to any question as a response. • Randomization o Teachers can choose to randomize the order of questions and the order of potential options for a question. o Students will receive a different order with every attempt. • Grading o Teachers can view the quiz submissions for individual students and assign point values to each answer. o Students can view their graded quizzes, with the points for each individual question and their total score listed. Optional Features: • Teachers can create questions with different formats than multiple choice. Select two from the following list (fill in the blank, dropdown, matching, true / false). Students can respond to the question. • Teachers can create a question pool wherein the questions select for the quiz are a random subset of the larger pool. Students will receive a different subset with every attempt. • Teachers can grant specific students alternate forms of access to the quiz in the form of different deadlines and/or extended time. Both features must be present. The individual student who receives those changes will have them present in the quiz when they take it. Common Features While the specifics of each implementation will be related to the option you select, there are two common features for every project. Roles • There will be two defined roles in the application: Teacher and Student. o Teachers will be able to create courses and edit content within them. o Students will be able to access the available courses and submit responses. • Users will select their role while creating an account, with permissions associated with their actions accordingly. • Permissions details will be noted in the option requirements. Courses • Each application must support multiple courses. • Teachers will be able to create as many courses as they like. • Students can access any course that has been created. I have made the functionality for the teacher to create courses and view existing courses. You can handle the quiz viewing, creating, editing and deleting things to be done from the teacher's side. I have commented //to be continued towards the bottom of my teacher class. You can start working on it from there. import java.util.ArrayList; import java.util.Scanner; import java.io.*; public class Teacher { private String teacherInitialMenu = "Select a menu choice to proceed?\n1. View Existing Courses" + "\n2. Create A New Course\n" + "3. Go back to the main menu" ; private String username; private String invalidInputMessage = "Error! Invalid input. Please try again."; private int initialInput; private int finalInput; private String mainMenu = "Placeholder for the Main Menu"; public String getTeacherInitialMenu() { return teacherInitialMenu; } public String getUsername() { return username; } public String getInvalidInputMessage() { return invalidInputMessage; } public Teacher(String username) { this.username = username; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); } public void teacherRunMethod(String username, Scanner scanner) { do { Teacher teacher = new Teacher(getUsername()); ArrayList
teacherCourses = new ArrayList<>(); System.out.println(teacher.getTeacherInitialMenu()); initialInput = scanner.nextInt(); while (initialInput != 1 && initialInput != 2 && initialInput != 3) { System.out.println(teacher.getInvalidInputMessage()); initialInput = scanner.nextInt(); } if (initialInput == 3) { break; } File f = new File(username + "-ExistingCourses"); if (initialInput == 1) { if (!f.exists() || f.isDirectory()) { do { System.out.println("Sorry, you don't have any existing courses. Please create a new course to access this section!"); System.out.println("1. View Existing Courses\n" + "2. Create A New Course\n" + "3. Go back to the main menu"); initialInput = scanner.nextInt(); } while (initialInput == 1); if (initialInput == 3) { break; } } else { try (BufferedReader br = new BufferedReader(new FileReader(f))) { String line; while ((line = br.readLine()) != null) { if (line.isBlank() || line.isBlank()) { continue; } teacherCourses.add(line); }