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
53 changes: 53 additions & 0 deletions src/main/java/UMLDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
@startuml

class Main {
+ main(args: String[]): void
}

class MaintenanceRequest {
- tenantName: String
- apartmentNumber: int
- issueType: String
- severity: int
- status: String
- assignedTech: String

+ MaintenanceRequest()
+ MaintenanceRequest(tenantName: String, apartmentNumber: int, issueType: String, severity: int)

+ getTenantName(): String
+ setTenantName(name: String): void

+ getApartmentNumber(): int
+ setApartmentNumber(number: int): void

+ getIssueType(): String
+ setIssueType(issue: String): void

+ getSeverity(): int
+ setSeverity(severity: int): void

+ getStatus(): String
+ setStatus(status: String): void

+ getAssignedTech(): String
+ setAssignedTech(name: String): void

+ toString(): String
}

class MaintenanceOffice {
- requests: List<MaintenanceRequest>

+ MaintenanceOffice()
+ addRequest(request: MaintenanceRequest): void
+ assignTechnician(request: MaintenanceRequest): void
+ updateStatus(request: MaintenanceRequest, status: String): void
+ closeRequest(request: MaintenanceRequest): void
+ generateDailyReport(): void
}

Main --> MaintenanceOffice
MaintenanceOffice --> MaintenanceRequest

@enduml
53 changes: 43 additions & 10 deletions src/main/java/org/codedifferently/Main.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,50 @@
package org.codedifferently;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
import java.util.Scanner;

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!");

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);

MaintenanceOffice office = new MaintenanceOffice();
Scanner scanner = new Scanner(System.in);

while (true) {

System.out.println("Enter tenant name (or type 'done' to exit): ");
String tenantName = scanner.nextLine();

if (tenantName.equalsIgnoreCase("done")) {
break;
}

System.out.println("Enter apartment number: ");
int apartmentNumber = Integer.parseInt(scanner.nextLine());

System.out.println("Enter issue type: ");
String issueType = scanner.nextLine();

System.out.println("Enter severity (1-5): ");
int severity = Integer.parseInt(scanner.nextLine());

MaintenanceRequest request =
new MaintenanceRequest(tenantName, apartmentNumber, issueType, severity);

office.addRequest(request);

if (issueType.equalsIgnoreCase("Electrical") && severity >= 4) {
System.out.println("⚠ Electrical high severity — handle urgently!");
}

if (severity == 5) {
office.assignTechnician(request);
System.out.println("Dispatching immediately.");
}

System.out.println("Request logged successfully.");
}

office.generateDailyReport();
scanner.close();
}
}
55 changes: 55 additions & 0 deletions src/main/java/org/codedifferently/MaintenanceOffice.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.codedifferently;

import java.util.ArrayList;
import java.util.List;

public class MaintenanceOffice {

private List<MaintenanceRequest> requests;

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

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

public void assignTechnician(MaintenanceRequest request) {

int severity = request.getSeverity();

if (severity == 5) {
request.setAssignedTech("Senior Tech");
} else if (severity >= 3) {
request.setAssignedTech("Standard Tech");
} else {
request.setAssignedTech("Junior Tech");
}

request.setStatus("IN_PROGRESS");
}

public void updateStatus(MaintenanceRequest request, String status) {
request.setStatus(status);
}

public void generateDailyReport() {

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

for (MaintenanceRequest request : requests) {
if (request.getStatus().equals("DONE")) {
closed++;
} else {
open++;
}
}

System.out.println("Total Requests: " + total);
System.out.println("Open: " + open);
System.out.println("Closed: " + closed);
}
}
101 changes: 101 additions & 0 deletions src/main/java/org/codedifferently/MaintenanceRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package org.codedifferently;

public class MaintenanceRequest {

private String tenantName;
private int apartmentNumber;
private String issueType;
private int severity;
private String status;
private String assignedTech;

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

// Parameterized
public MaintenanceRequest(String tenantName,
int apartmentNumber,
String issueType,
int severity) {

this.tenantName = tenantName;
this.apartmentNumber = apartmentNumber;
this.issueType = issueType;
this.status = "NEW";

setSeverity(severity); // use validation
}

// Getters
public String getTenantName() {
return tenantName;
}

public int getApartmentNumber() {
return apartmentNumber;
}

public String getIssueType() {
return issueType;
}

public int getSeverity() {
return severity;
}

public String getStatus() {
return status;
}

public String getAssignedTech() {
return assignedTech;
}

// Setters
public void setTenantName(String tenantName) {
this.tenantName = tenantName;
}

public void setApartmentNumber(int apartmentNumber) {
this.apartmentNumber = apartmentNumber;
}

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

public void setSeverity(int severity) {
if (severity >= 1 && severity <= 5) {
this.severity = severity;
} else {
throw new IllegalArgumentException("Severity must be between 1 and 5");
}
}

public void setStatus(String status) {
if (status.equals("NEW") ||
status.equals("IN_PROGRESS") ||
status.equals("DONE")) {

this.status = status;
} else {
throw new IllegalArgumentException("Invalid status");
}
}

public void setAssignedTech(String assignedTech) {
this.assignedTech = assignedTech;
}

@Override
public String toString() {
return "Tenant: " + tenantName +
", Apartment: " + apartmentNumber +
", Issue: " + issueType +
", Severity: " + severity +
", Status: " + status +
", Tech: " + assignedTech;
}
}
4 changes: 4 additions & 0 deletions src/test/java/org/codedifferently/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package java.org.codedifferently;

public class Main {
}
4 changes: 4 additions & 0 deletions src/test/java/org/codedifferently/MaintenanceOffice.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package java.org.codedifferently;

public class MaintenanceOffice {
}
4 changes: 4 additions & 0 deletions src/test/java/org/codedifferently/MaintenanceRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package java.org.codedifferently;

public class MaintenanceRequest {
}