# Sojorn Documentation Hub

## Overview

This directory contains comprehensive documentation for the Sojorn platform, covering all aspects of development, deployment, and maintenance.

## Document Structure

### 📚 Core Documentation

#### **[E2EE_COMPREHENSIVE_GUIDE.md](./E2EE_COMPREHENSIVE_GUIDE.md)**
Complete end-to-end encryption implementation guide, covering the evolution from simple stateless encryption to production-ready X3DH system.

#### **[FCM_COMPREHENSIVE_GUIDE.md](./FCM_COMPREHENSIVE_GUIDE.md)**
Comprehensive Firebase Cloud Messaging setup and troubleshooting guide for both Web and Android platforms.

#### **[BACKEND_MIGRATION_COMPREHENSIVE.md](./BACKEND_MIGRATION_COMPREHENSIVE.md)**
Complete migration documentation from Supabase to self-hosted Golang backend, including planning, execution, and validation.

#### **[TROUBLESHOOTING_COMPREHENSIVE.md](./TROUBLESHOOTING_COMPREHENSIVE.md)**
Comprehensive troubleshooting guide covering authentication, notifications, E2EE chat, backend services, and deployment issues.

#### **[DEVELOPMENT_COMPREHENSIVE.md](./DEVELOPMENT_COMPREHENSIVE.md)**
Complete development and architecture guide, covering design patterns, code organization, testing strategies, and performance optimization.

#### **[DEPLOYMENT_COMPREHENSIVE.md](./DEPLOYMENT_COMPREHENSIVE.md)**
Comprehensive deployment and operations guide, covering infrastructure setup, deployment procedures, monitoring, and maintenance.

### 📋 Organized Documentation

#### **Deployment Guides** (`deployment/`)
- `QUICK_START.md` - Quick start guide for new developers
- `SETUP.md` - Complete environment setup
- `VPS_SETUP_GUIDE.md` - Server infrastructure setup
- `SEEDING_SETUP.md` - Database seeding and test data
- `R2_CUSTOM_DOMAIN_SETUP.md` - Cloudflare R2 configuration
- `DEPLOYMENT.md` - Deployment procedures
- `DEPLOYMENT_STEPS.md` - Step-by-step deployment

#### **Feature Documentation** (`features/`)
- `IMAGE_UPLOAD_IMPLEMENTATION.md` - Image upload system
- `notifications-troubleshooting.md` - Notification system issues
- `posting-and-appreciate-fix.md` - Post interaction fixes

#### **Design & Architecture** (`design/`)
- `DESIGN_SYSTEM.md` - Visual design system and UI guidelines
- `CLIENT_README.md` - Flutter client architecture
- `database_architecture.md` - Database schema and design

#### **Reference Materials** (`reference/`)
- `PROJECT_STATUS.md` - Current project status and roadmap
- `NEXT_STEPS.md` - Planned features and improvements
- `SUMMARY.md` - Project overview and summary

#### **Platform Philosophy** (`philosophy/`)
- `CORE_VALUES.md` - Core platform values
- `UX_GUIDE.md` - UX design principles
- `FOURTEEN_PRECEPTS.md` - Platform precepts
- `HOW_SHARP_SPEECH_STOPS.md` - Communication guidelines
- `SEEDING_PHILOSOPHY.md` - Content seeding philosophy

#### **Troubleshooting Archive** (`troubleshooting/`)
- `JWT_401_FIX_2026-01-11.md` - JWT authentication fixes
- `JWT_ERROR_RESOLUTION_2025-12-30.md` - JWT error resolution
- `TROUBLESHOOTING_JWT_2025-12-30.md` - JWT troubleshooting
- `image-upload-fix-2025-01-08.md` - Image upload fixes
- `search_function_debugging.md` - Search debugging
- `test_image_upload_2025-01-05.md` - Image upload testing

#### **Archive Materials** (`archive/`)
- `ARCHITECTURE.md` - Original architecture documentation
- `EDGE_FUNCTIONS.md` - Edge functions reference
- `DEPLOY_EDGE_FUNCTIONS.md` - Edge function deployment
- Various logs and historical files

### 📋 Historical Documentation (Legacy)

#### Migration Records
- `BACKEND_MIGRATION_RUNBOOK.md` - Original migration runbook
- `MIGRATION_PLAN.md` - Initial migration planning
- `MIGRATION_VALIDATION_REPORT.md` - Final validation results

#### FCM Implementation
- `FCM_DEPLOYMENT.md` - Original deployment guide
- `FCM_SETUP_GUIDE.md` - Initial setup instructions
- `ANDROID_FCM_TROUBLESHOOTING.md` - Android-specific issues

#### E2EE Development
- `E2EE_IMPLEMENTATION_COMPLETE.md` - Original implementation notes

#### Platform Features
- `CHAT_DELETE_DEPLOYMENT.md` - Chat feature deployment
- `MEDIA_EDITOR_MIGRATION.md` - Media editor migration
- `PRO_VIDEO_EDITOR_CONFIG.md` - Video editor configuration

#### Reference Materials
- `SUPABASE_REMOVAL_INTEL.md` - Supabase cleanup information
- `LINKS_FIX.md` - Link resolution fixes
- `LEGACY_README.md` - Historical project information

---

## Quick Reference

### 🔧 Development Setup

1. **Backend**: Go with Gin framework, PostgreSQL database
2. **Frontend**: Flutter with Riverpod state management
3. **Infrastructure**: Ubuntu VPS with Nginx reverse proxy
4. **Database**: PostgreSQL with PostGIS for location features

### 🔐 Security Features

- **E2EE Chat**: X3DH key agreement with AES-GCM encryption
- **Authentication**: JWT-based auth with refresh tokens
- **Push Notifications**: FCM for Web and Android
- **Data Protection**: Encrypted storage and secure key management

### 🚀 Deployment Architecture

```
Internet
    ↓
Nginx (SSL Termination, Static Files)
    ↓
Go Backend (API, Business Logic)
    ↓
PostgreSQL (Data, PostGIS)
    ↓
File System (Uploads) / Cloudflare R2
```

### 📱 Platform Support

- **Web**: Chrome, Firefox, Safari, Edge
- **Mobile**: Android (iOS planned)
- **Notifications**: Web push via FCM, Android native
- **Storage**: Local uploads + Cloudflare R2

---

## Current Status

### ✅ Production Ready
- Backend API with full feature parity
- E2EE chat system (X3DH implementation)
- FCM notifications (Web + Android)
- Media upload and serving
- User authentication and profiles
- Post feed and search functionality

### 🚧 In Development
- iOS mobile application
- Advanced E2EE features (key recovery)
- Real-time collaboration features
- Advanced analytics and monitoring

### 📋 Planned Features
- Multi-device E2EE sync
- Advanced moderation tools
- Enhanced privacy controls
- Performance optimizations

---

## Getting Started

### For Developers

1. **Clone Repository**: `git clone <repo-url>`
2. **Backend Setup**: Follow `BACKEND_MIGRATION_COMPREHENSIVE.md`
3. **Frontend Setup**: Standard Flutter development environment
4. **Database**: PostgreSQL with required extensions
5. **Configuration**: Copy `.env.example` to `.env` and configure

### For System Administrators

1. **Server Setup**: Ubuntu 22.04 LTS recommended
2. **Dependencies**: PostgreSQL, Nginx, Certbot
3. **Deployment**: Use provided deployment scripts
4. **Monitoring**: Set up logging and alerting
5. **Maintenance**: Follow troubleshooting guide for issues

### For Security Review

1. **E2EE Implementation**: Review `E2EE_COMPREHENSIVE_GUIDE.md`
2. **Authentication**: JWT implementation and token management
3. **Data Protection**: Encryption at rest and in transit
4. **Access Control**: User permissions and data isolation

---

## Support & Maintenance

### Regular Tasks

- **Weekly**: Review logs and performance metrics
- **Monthly**: Update dependencies and security patches
- **Quarterly**: Backup verification and disaster recovery testing
- **Annually**: Security audit and architecture review

### Emergency Procedures

1. **Service Outage**: Follow troubleshooting guide
2. **Security Incident**: Immediate investigation and containment
3. **Data Loss**: Restore from recent backups
4. **Performance Issues**: Monitor and scale resources

### Contact Information

- **Technical Issues**: Refer to troubleshooting guide first
- **Security Concerns**: Immediate escalation required
- **Feature Requests**: Submit through project management system
- **Documentation Updates**: Pull requests welcome

---

## Document Maintenance

### Version Control

- All documentation is version-controlled with the main repository
- Major updates should reference specific code versions
- Historical documents preserved for reference

### Update Process

1. **Review**: Regular review for accuracy and completeness
2. **Update**: Modify as features and architecture evolve
3. **Test**: Verify instructions and commands work correctly
4. **Version**: Update version numbers and dates

### Contribution Guidelines

- Use clear, concise language
- Include code examples and commands
- Add troubleshooting sections for complex features
- Maintain consistent formatting and structure

---

**Last Updated**: January 30, 2026
**Documentation Version**: 1.0
**Platform Version**: 2.0 (Post-Migration)
**Next Review**: February 15, 2026
