Current State Summary

See Something, Say Something, Albuquerque!

Milestone 3 - Current state of the project

Summary of Current State

Last Updated: March 29, 2026 Milestone: 3 of 4 Overall Completion Status: ~75% complete


Project Architecture Overview

Backend Service (Spring Boot)

The See Something ABQ backend REST API service is substantially complete for Milestone 3, with all core CRUD operations implemented and tested.

Technology Stack:

Project Statistics:


Completed Deliverables (Milestone 3)

✅ 1. Data Model & Persistence Layer

Status: COMPLETE

✅ 2. Service Layer

Status: COMPLETE

All core service interfaces and implementations are complete:

✅ 3. REST API Controllers

Status: COMPLETE

User-Facing Controllers:

Manager-Only Controllers:

✅ 4. Security Implementation

Status: COMPLETE

✅ 5. Custom Exception Handling

Status: COMPLETE (Milestone 3 Requirement)

✅ 6. Testing

Status: COMPREHENSIVE

✅ 7. API Documentation

Status: COMPLETE


Known Deficiencies & Incomplete Elements

1. DTO Layer (In Progress)

Status: INCOMPLETE Priority: HIGH Impact: Medium

Current State:

Issues:

Remaining Work:

TODOs in Code:

// IssueReportController.java:46-47
// TODO: Replace entity-based request/response with DTOs
// TODO: Add validation (e.g., @Valid, Bean Validation annotations)

2. Ownership & Access Control Enforcement

Status: PARTIALLY IMPLEMENTED Priority: HIGH Impact: High (Security)

Current State:

Issues:

Remaining Work:

TODOs in Code:

// IssueReportServiceImpl.java:63
// TODO: Confirm user ownership behavior, or enforce ownership rules

// IssueReportServiceImpl.java:99
// TODO: Enforce real ownership instead of always stamping current user

3. Bidirectional Relationship Management

Status: PARTIALLY IMPLEMENTED Priority: MEDIUM Impact: Medium

Current State:

Issues:

Remaining Work:

TODOs in Code:

// IssueReport.java:55
// TODO: Revisit cascade strategy for reportLocation

// IssueReportServiceImpl.java:80
// TODO: Confirm bidirectional link handling once DTOs/mappers are in place

// IssueReportServiceImpl.java:121
// TODO: Update issueTypes and reportImages when DTOs and mapping rules are in place

4. Data Model Clarifications Needed

Status: AWAITING CLIENT INPUT Priority: LOW Impact: Low

Current State:

Remaining Work:

TODOs in Code:

// ReportLocation.java:26
// TODO: Needs client clarification on streetCoordinate field

5. Image Storage Implementation

Status: STUB IMPLEMENTATION Priority: HIGH (Milestone 4) Impact: High

Current State:

Remaining Work:


Unimplemented Features (vs. Milestone 3 Rubric)

✅ All Required Milestone 3 Deliverables Complete

According to the Milestone 3 rubric requirements, all deliverables are COMPLETE:

Entity classes with proper annotations - 6 entities fully implemented ✅ Service interfaces and implementations - 5 services complete ✅ JPA repositories - All repositories implemented ✅ REST controllers - 10 controllers with full CRUD operations ✅ OAuth2 authentication - Google Sign-In integrated ✅ Custom exception classes with @RestControllerAdvice - 14 exceptions + global handler ✅ Unit and integration tests - Comprehensive test coverage ✅ OpenAPI documentation - Complete API specification


Functional Stretch Goals

Short-Term Stretch Goals (Potentially achievable in Milestone 4)

1. Image Upload & Storage

Priority: HIGH Estimated Effort: 8-12 hours

Value: Essential for full functionality - users expect to attach photos to reports

Priority: MEDIUM Estimated Effort: 6-8 hours

Value: Critical for managers reviewing large numbers of reports

3. Report Comments/Updates

Priority: MEDIUM Estimated Effort: 6-8 hours

Value: Enables ongoing communication about issue resolution

4. Email Notifications

Priority: MEDIUM Estimated Effort: 4-6 hours

Value: Ensures timely response to new reports

5. Analytics Dashboard Data

Priority: LOW Estimated Effort: 8-12 hours

Value: Helps city executives make data-driven decisions

Medium-Term Stretch Goals (Post-Capstone)

6. Multi-Provider OAuth Support

Estimated Effort: 4-6 hours

7. Automated Issue Classification

Estimated Effort: 20-30 hours

8. Geographic Data Enhancements

Estimated Effort: 8-12 hours

9. Report Export & Reporting

Estimated Effort: 6-8 hours

10. Mobile Push Notifications

Estimated Effort: 6-8 hours (backend only)

Long-Term Enhancements (Future Versions)

11. Workflow Automation

12. Public Portal

13. Integration with City Systems


Technical Debt & Code Quality

Current State: GOOD ✅

Minor Technical Debt Items:

  1. Some TODO comments remaining (8 locations) - mostly for future enhancements
  2. Circular JSON reference risks - mitigated with @JsonIgnore, but DTOs would eliminate entirely
  3. Hardcoded default state - “New” state is hardcoded in IssueReportServiceImpl

Deployment Readiness

Current Status: DEVELOPMENT READY ✅

What’s Working:

Not Production-Ready:

Milestone 4 Focus:


Conclusion

The See Something ABQ backend service has successfully completed all Milestone 3 requirements and is on track for Milestone 4. The core functionality is solid, with comprehensive exception handling, security implementation, and test coverage. The primary focus for Milestone 4 will be implementing DTOs, completing image upload functionality, strengthening authorization enforcement, and preparing for production deployment.

Overall Risk Assessment: LOW ✅ Milestone 3 Completion: 100% ✅ Project Completion: ~75% On Track for Successful Delivery: YES ✅