SYSTEM DEV SAMPLE
import java.util.*;
class User {
String id;
String name;
String role;
User(String id, String name, String role) {
this.id = id;
this.name = name;
this.role = role;
}
}
class FileRecord {
String id;
String name;
String content;
String status;
String createdBy;
String approvedBy;
FileRecord(String id, String name, String content, String createdBy) {
this.id = id;
this.name = name;
this.content = content;
this.status = "Draft";
this.createdBy = createdBy;
}
}
class Project {
String id;
String name;
String description;
List<FileRecord> files = new ArrayList<>();
Project(String id, String name, String description) {
this.id = id;
this.name = name;
this.description = description;
}
}
public class ProjectSystem {
static Map<String, User> users = new HashMap<>();
static Map<String, Project> projects = new HashMap<>();
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
// Read user input from STDIN
System.out.print("Enter Admin Name: ");
String adminName = scanner.nextLine();
User admin = createUser(adminName, "Admin");
System.out.print("Enter Editor Name: ");
String editorName = scanner.nextLine();
User editor = createUser(editorName, "Editor");
System.out.print("Enter Project Name: ");
String projectName = scanner.nextLine();
System.out.print("Enter Project Description: ");
String projectDescription = scanner.nextLine();
Project project = createProject(projectName, projectDescription);
System.out.print("Enter File Name: ");
String fileName = scanner.nextLine();
System.out.print("Enter File Content: ");
String fileContent = scanner.nextLine();
FileRecord file = createFile(project.id, editor.id, fileName, fileContent);
submitFileForApproval(project.id, file.id);
approveFile(project.id, file.id, admin.id);
System.out.println("✔ File '" + file.name + "' Status: " + file.status);
}
public static User createUser(String name, String role) {
String id = UUID.randomUUID().toString();
User user = new User(id, name, role);
users.put(id, user);
return user;
}
public static Project createProject(String name, String description) {
String id = UUID.randomUUID().toString();
Project project = new Project(id, name, description);
projects.put(id, project);
return project;
}
public static FileRecord createFile(String projectId, String userId, String name, String content) {
String id = UUID.randomUUID().toString();
FileRecord file = new FileRecord(id, name, content, userId);
projects.get(projectId).files.add(file);
return file;
}
public static void submitFileForApproval(String projectId, String fileId) {
for (FileRecord file : projects.get(projectId).files) {
if (file.id.equals(fileId)) {
file.status = "PendingApproval";
}
}
}
public static void approveFile(String projectId, String fileId, String approverId) {
for (FileRecord file : projects.get(projectId).files) {
if (file.id.equals(fileId) && file.status.equals("PendingApproval")) {
file.status = "Approved";
file.approvedBy = approverId;
}
}
}
}