sojorn/sojorn_docs/archive/deploys
Patrick Britton 38653f5854 Sojorn Backend Finalization & Cleanup - Complete Migration from Supabase
##  Phase 1: Critical Feature Completion (Beacon Voting)
- Add VouchBeacon, ReportBeacon, RemoveBeaconVote methods to PostRepository
- Implement beacon voting HTTP handlers with confidence score calculations
- Register new beacon routes: /beacons/:id/vouch, /beacons/:id/report, /beacons/:id/vouch (DELETE)
- Auto-flag beacons at 5+ reports, confidence scoring (0.5 base + 0.1 per vouch)

##  Phase 2: Feed Logic & Post Distribution Integrity
- Verify unified feed logic supports all content types (Standard, Quips, Beacons)
- Ensure proper distribution: Profile Feed + Main/Home Feed for followers
- Beacon Map integration for location-based content
- Video content filtering for Quips feed

##  Phase 3: The Notification System
- Create comprehensive NotificationService with FCM integration
- Add CreateNotification method to NotificationRepository
- Implement smart deep linking: beacon_map, quip_feed, main_feed
- Trigger notifications for beacon interactions and cross-post comments
- Push notification logic with proper content type detection

##  Phase 4: The Great Supabase Purge
- Delete function_proxy.go and remove /functions/:name route
- Remove SupabaseURL, SupabaseKey from config.go
- Remove SupabaseID field from User model
- Clean all Supabase imports and dependencies
- Sanitize codebase of legacy Supabase references

##  Phase 5: Flutter Frontend Integration
- Implement vouchBeacon(), reportBeacon(), removeBeaconVote() in ApiService
- Replace TODO delay in video_comments_sheet.dart with actual publishComment call
- Fix compilation errors (named parameters, orphaned child properties)
- Complete frontend integration with Go API endpoints

##  Additional Improvements
- Fix compilation errors in threaded_comment_widget.dart (orphaned child property)
- Update video_comments_sheet.dart to use proper named parameters
- Comprehensive error handling and validation
- Production-ready notification system with deep linking

##  Migration Status: 100% Complete
- Backend: Fully migrated from Supabase to custom Go/Gin API
- Frontend: Integrated with new Go endpoints
- Notifications: Complete FCM integration with smart routing
- Database: Clean of all Supabase dependencies
- Features: All functionality preserved and enhanced

Ready for VPS deployment and production testing!
2026-01-30 09:24:31 -06:00

48 lines
1.4 KiB
Plaintext

# Deploy Beacon Edge Function
The beacon creation is failing because the edge function hasn't been deployed to Supabase yet.
## Deploy Command
Run this command from the project root:
```bash
supabase functions deploy create_beacon
```
## What This Does
The `create_beacon` edge function will:
1. Create a new post with `is_beacon: true`
2. Set the location as a PostGIS point
3. Store beacon type (safety, weather, traffic, community)
4. Calculate initial confidence score based on user's trust score
5. Make it appear in both:
- The beacon map (when beacon mode is enabled)
- The user's timeline as a regular post
## Beacon Posts vs Regular Posts
Beacons are special posts with these properties:
- `is_beacon: true` - Marks it as a beacon
- `beacon_type` - Type of alert (safety/weather/traffic/community)
- `location` - PostGIS point for map display
- `confidence_score` - Community-verified accuracy (0.0-1.0)
- `is_active_beacon: true` - Currently active
- `allow_chain: false` - Beacons don't allow chaining
Users will see beacons:
- **On the map** when they have beacon mode enabled
- **In timelines** like any other post (if the viewer has beacon mode enabled)
## After Deployment
Test by:
1. Opening the Beacon tab
2. Enabling beacon mode (location permission)
3. Tapping "Drop Beacon"
4. Filling in the form with optional photo
5. Submitting
The beacon should appear both on the map and in the user's post timeline.