Skip to content

feat: final system synchronization, notification system completion, and UI/UX enhancements#292

Merged
Riomalos-ZyrrahFeil merged 46 commits intomainfrom
develop
Jan 9, 2026
Merged

feat: final system synchronization, notification system completion, and UI/UX enhancements#292
Riomalos-ZyrrahFeil merged 46 commits intomainfrom
develop

Conversation

@Riomalos-ZyrrahFeil
Copy link
Copy Markdown
Contributor

The primary focus of this update is the completion of the automated notification system, the finalization of the item-matching workflow, and a total polish of the user interface to ensure the app is stable and easy to use.

Status: System Core Finalized & Optimized.

Co-authored-by: Riomalos-ZyrrahFeil your-email@example.com
Co-authored-by: siervo-jallaine jallaine-email@example.com
Co-authored-by: durante-stephanie stephanie-email@example.com
Co-authored-by: florido-maydelyn maydelyn-email@example.com

siervo-jallaine and others added 30 commits January 8, 2026 02:43
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ AI Code Analysis: I found some potential issues for you to review.


return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status));
}
return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status));
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.


return ResponseEntity.ok(paginatedResponse);
}
private final CopyOnWriteArrayList<SseEmitter> emitters = new CopyOnWriteArrayList<>();
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 89). Please break this line.

User authenticatedUser = (User) authentication.getPrincipal();
int userId = authenticatedUser.getUserId();

Map<String, Object> paginatedResponse = service.listByUserId(userId, page, size, status);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 93). Please break this line.

.collect(Collectors.toList()));
}

User reporter = userRepository.findById(report.getUserId()).orElse(null);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 81). Please break this line.

@Query("UPDATE Match m SET m.status = :status WHERE m.matchId = :id")
int updateMatchStatus(@Param("id") int id, @Param("status") String status);

@Query("SELECT m FROM Match m WHERE m.lostReportId = :reportId OR m.foundReportId = :reportId")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 97). Please break this line.

this.patchFormForExistingClaim(claim);
return foundReport ? this.userService
.getUserById(foundReport.user_id) : of(null);
return foundReport ? this.userService.getUserById(foundReport.user_id) : of(null);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.

}

// Connects to your Spring Boot image controller
const secureBaseUrl = environment.apiUrl.replace('http://', 'https://').replace(/\/$/, '');
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.

</div>

<div class="reminder-box">
<p><strong>Note:</strong> You may be asked to provide additional proof of ownership.</p>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.

return locations
.filter(option => option.toLowerCase().includes(filterValue))
.slice(0, 5);
switchMap(([value, locations]: [string | null, string[]]): Observable<string[]> => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.

if (this.unreadCount() === 0) return;

const previousCount = this.unreadCount();
const previousStatus = this.notifications.map(n => ({ id: n.notif_id, status: n.status }));
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ AI Code Analysis: I found some potential issues for you to review.


return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status));
}
return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status));
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.


return ResponseEntity.ok(paginatedResponse);
}
private final CopyOnWriteArrayList<SseEmitter> emitters = new CopyOnWriteArrayList<>();
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 89). Please break this line.

User authenticatedUser = (User) authentication.getPrincipal();
int userId = authenticatedUser.getUserId();

Map<String, Object> paginatedResponse = service.listByUserId(userId, page, size, status);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 93). Please break this line.

.collect(Collectors.toList()));
}

User reporter = userRepository.findById(report.getUserId()).orElse(null);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 81). Please break this line.

@Query("UPDATE Match m SET m.status = :status WHERE m.matchId = :id")
int updateMatchStatus(@Param("id") int id, @Param("status") String status);

@Query("SELECT m FROM Match m WHERE m.lostReportId = :reportId OR m.foundReportId = :reportId")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 97). Please break this line.

this.patchFormForExistingClaim(claim);
return foundReport ? this.userService
.getUserById(foundReport.user_id) : of(null);
return foundReport ? this.userService.getUserById(foundReport.user_id) : of(null);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.

}

// Connects to your Spring Boot image controller
const secureBaseUrl = environment.apiUrl.replace('http://', 'https://').replace(/\/$/, '');
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.

</div>

<div class="reminder-box">
<p><strong>Note:</strong> You may be asked to provide additional proof of ownership.</p>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.

return locations
.filter(option => option.toLowerCase().includes(filterValue))
.slice(0, 5);
switchMap(([value, locations]: [string | null, string[]]): Observable<string[]> => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.

if (this.unreadCount() === 0) return;

const previousCount = this.unreadCount();
const previousStatus = this.notifications.map(n => ({ id: n.notif_id, status: n.status }));
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.

@Riomalos-ZyrrahFeil Riomalos-ZyrrahFeil merged commit d99b950 into main Jan 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants