Implementing a Java Student Management System with Authentication
Authentication System Implmeentation
Login Functionality
The login process implements a three-attempt limit with verification code validation:
for (int attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
String inputUsername = scanner.nextLine();
if (!isUserRegistered(users, inputUsername)) {
System.out.println("User not registered");
return;
}
String verificationCode = generateVerificationCode();
System.out.println("Verification code: " + verificationCode);
String inputPassword = scanner.nextLine();
String inputCode = scanner.nextLine();
if (authenticateUser(users, inputUsername, inputPassword)
&& inputCode.equalsIgnoreCase(verificationCode)) {
System.out.println("Login successful");
launchSystem();
return;
}
System.out.println(attempt == MAX_ATTEMPTS - 1 ?
"Account locked" : "Remaining attempts: " + (MAX_ATTEMPTS - attempt - 1));
}
Registration Process
User registration includes comprehensive validation:
public void registerUser(ArrayList<User> userList) {
String username = validateUsername(userList);
String password = validatePassword();
String idNumber = validateIdNumber();
String phone = validatePhoneNumber();
User newUser = new User(username, password, idNumber, phone);
userList.add(newUser);
displayUserDetails(userList);
}
private String validateUsername(ArrayList<User> userList) {
while (true) {
String username = scanner.nextLine();
if (!isValidUsernameFormat(username)) {
System.out.println("Invalid username format");
continue;
}
if (isUsernameAvailable(userList, username)) {
return username;
}
System.out.println("Username taken");
}
}
Password Recovery
The password recovery system requires identity verification:
public void resetPassword(ArrayList<User> userList) {
String username = scanner.nextLine();
User user = findUser(userList, username);
if (user == null) {
System.out.println("User not found");
return;
}
if (!verifyIdentity(user)) {
System.out.println("Identity verification failed");
return;
}
String newPassword = setNewPassword();
user.setPassword(newPassword);
System.out.println("Password updated successfully");
}
Core System Components
Student Class
public class Student {
private String studentId;
private String fullName;
private int age;
private String gender;
private String residence;
// Constructor, getters, and setters
}
Main System Operations
public class StudentManager {
private ArrayList<Student> studentRecords;
public void addStudent() {
Student newStudent = new Student();
// Collect and validate student data
studentRecords.add(newStudent);
}
public void removeStudent(String studentId) {
// Implementation for student removal
}
public void updateStudent(String studentId) {
// Implementation for student data modification
}
public void displayAllStudents() {
// Implementation for displaying student records
}
}