How samwallflower/safewalk works
SafeWalk is a Spring API for safety-aware route recommendations, localized incident reporting and heatmaps, and monitored walk sessions with emergency response. Its documented user journey is to request routes, start a walk, share location, and report or vote on incidents; route scoring uses nearby incident severity. Session monitoring can warn on anomalies or trigger emergency handling. The graph includes documented features whose implementation was not sampled, but only shows detailed service wiring where excerpts support it; controller-to-service links are therefore omitted.
Main entry points: EmergencyService.java Emergency protocol · AnomalyDetectionService.java Anomaly detection · RoutingService.java Route scoring · NotificationService.java Live notifications
Components 26
API Surface
- Routing API
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/controller/RoutingController.java - Incident API
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/controller/IncidentReportController.java - Voting API
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/controller/IncidentVoteController.java - Walk API
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/controller/WalkSessionController.java - Emergency API
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/controller/EmergencyController.java
Routes And Incidents
- Route scoring
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/routing/RoutingService.java - Incident reports
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/incidentreport/IncidentReportService.java - Incident voting
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/incidentvote/IncidentVoteService.java - Incident categories
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/incidentcategory/IncidentCategoryService.java
Walk Safety
- Walk sessions
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/walksession/WalkSessionService.java - Anomaly detection
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/anomaly/AnomalyDetectionService.java - Detection scheduler
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/scheduler/AnomalyDetectionScheduler.java - Emergency protocol
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/emergency/EmergencyService.java - Live notifications
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/service/notification/NotificationService.java - Walk WebSocket
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/websocket/controller/WalkSessionWebSocketController.java
Persistence
- Route records
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/repository/RouteRepository.java - Incident records
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/repository/IncidentReportRepository.java - Vote records
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/repository/IncidentVoteRepository.java - Session records
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/repository/WalkSessionRepository.java - Emergency records
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/repository/EmergencyRepository.java - Contact records
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/repository/EmergencyContactRepository.java
Integrations
- Maps client
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/integration/googlemaps/GoogleMapsClient.java - Google Maps
- SMS client
backend/SafeWalk/src/main/java/com/samwallflower/safewalk/integration/twilio/TwilioClient.java - Twilio SMS
Other components
- SafeWalk user
Connections 26
- SafeWalk user → Routing API: requests routes
- SafeWalk user → Incident API: reports incidents
- SafeWalk user → Voting API: casts votes
- SafeWalk user → Walk API: manages walks
- SafeWalk user → Emergency API: triggers SOS
- Route scoring → Maps client: requests candidates
- Maps client → Google Maps: queries routes
- Route scoring → Incident records: reads nearby reports
- Route scoring → Route records: saves ranked routes
- Incident reports → Incident records: reads and writes
- Incident reports → Incident categories: resolves category
- Incident voting → Incident records: updates report counts
- Incident voting → Vote records: reads and writes
- Detection scheduler → Anomaly detection: runs detection
- Anomaly detection → Session records: loads active sessions
- Anomaly detection → Emergency protocol: triggers anomalies
- Anomaly detection → Live notifications: pushes warnings
- Anomaly detection → Walk WebSocket: checks connections
- Walk sessions → Session records: reads and writes
- Emergency protocol → Session records: updates session
- Emergency protocol → Contact records: loads contacts
- Emergency protocol → Emergency records: records emergency
- Emergency protocol → SMS client: sends alerts
- SMS client → Twilio SMS: sends SMS
- Emergency protocol → Live notifications: pushes alert
- Live notifications → Walk WebSocket: publishes messages