Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Apartment Maintenance Request Tracker
##333#### Apartment Maintenance Request Tracker

### Keep the Building Running.

Expand Down
36 changes: 27 additions & 9 deletions src/main/java/org/codedifferently/Main.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,35 @@
package org.codedifferently;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static void main(String[] args) {
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
// to see how IntelliJ IDEA suggests fixing it.
System.out.printf("Hello and welcome!");
List<MaintenanceRequest> requests = new ArrayList<>();
Scanner scanner = new Scanner(System.in);

for (int i = 1; i <= 5; i++) {
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
System.out.println("i = " + i);
// Intake requests from the user
while (true) {
System.out.print("Enter issue type (or 'done' to finish): ");
String issueType = scanner.nextLine();
if (issueType.equalsIgnoreCase("done")) {
break;
}
System.out.print("Enter severity level (1-5): ");
int severity = Integer.parseInt(scanner.nextLine());

MaintenanceRequest request = new MaintenanceRequest(issueType, severity);
requests.add(request);
System.out.println("Request logged: " + request);
if (severity >= 4) {
System.out.println("HIGH PRIORITY");
}
}

// Print all requests
System.out.println("\nAll logged requests:");
for (MaintenanceRequest req : requests) {
System.out.println(req);
}
}
}
46 changes: 46 additions & 0 deletions src/main/java/org/codedifferently/MaintenanceRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package org.codedifferently;

public class MaintenanceRequest {
private String issueType;
private int severity;
private String status;

// Default constructor
public MaintenanceRequest() {
this.status = "NEW";
}

// Parameterized constructor
public MaintenanceRequest(String issueType, int severity) {
this.issueType = issueType;
this.severity = severity;
this.status = "NEW";
}

// Getters and Setters
public String getIssueType() {
return issueType;
}

public void setIssueType(String issueType) {
this.issueType = issueType;
}

public int getSeverity() {
return severity;
}

public void setSeverity(int severity) {
this.severity = severity;
}

public String getStatus() {
return status;
}

// toString method
@Override
public String toString() {
return "Issue: " + issueType + ", Severity: " + severity + ", Status: " + status;
}
}
94 changes: 94 additions & 0 deletions src/main/java/org/codedifferently/MaintenceOffice.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package org.codedifferently;

import java.util.ArrayList;

public class MaintenanceOffice {

private ArrayList<MaintenanceRequest> requests;

public MaintenanceOffice() {
this.requests = new ArrayList<>();
}

public void addRequest(MaintenanceRequest request) {
requests.add(request);
}

// LEVEL 3 — Assign Tech Based on Severity
public void assignTechnician(MaintenanceRequest request) {

if (request.getSeverity().equalsIgnoreCase("HIGH")) {
request.setTechnician("Senior Tech");
} else if (request.getSeverity().equalsIgnoreCase("MEDIUM")) {
request.setTechnician("Regular Tech");
} else {
request.setTechnician("Junior Tech");
}

request.setStatus("IN_PROGRESS");
}

// Update Status (only allowed values)
public void updateStatus(MaintenanceRequest request, String newStatus) {

if (newStatus.equals("NEW") ||
newStatus.equals("IN_PROGRESS") ||
newStatus.equals("DONE")) {

request.setStatus(newStatus);
} else {
System.out.println("Invalid status update.");
}
}

// Close request ONLY if DONE
public void closeRequest(MaintenanceRequest request) {

if (request.getStatus().equals("DONE")) {
System.out.println("Request closed.");
} else {
System.out.println("Cannot close request unless status is DONE.");
}
}

// LEVEL 4 — Daily Report
public void printDailyReport() {

int total = requests.size();
int open = 0;
int closed = 0;

int low = 0;
int medium = 0;
int high = 0;

for (MaintenanceRequest r : requests) {

if (!r.getStatus().equals("DONE")) {
open++;
} else {
closed++;
}

if (r.getSeverity().equalsIgnoreCase("LOW")) {
low++;
} else if (r.getSeverity().equalsIgnoreCase("MEDIUM")) {
medium++;
} else if (r.getSeverity().equalsIgnoreCase("HIGH")) {
high++;
}
}

System.out.println("===== DAILY REPORT =====");
System.out.println("Total Requests: " + total);
System.out.println("Open: " + open);
System.out.println("Closed: " + closed);
System.out.println("Low Severity: " + low);
System.out.println("Medium Severity: " + medium);
System.out.println("High Severity: " + high);

if (high > 3) {
System.out.println("⚠ OVERLOAD WARNING: Too many high priority requests!");
}
}
}