You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							173 lines
						
					
					
						
							4.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							173 lines
						
					
					
						
							4.9 KiB
						
					
					
				
								---
							 | 
						|
								alwaysApply: false
							 | 
						|
								---
							 | 
						|
								# Time Safari Context
							 | 
						|
								
							 | 
						|
								**Author**: Matthew Raymer
							 | 
						|
								**Date**: 2025-08-19
							 | 
						|
								**Status**: 🎯 **ACTIVE** - Core application context
							 | 
						|
								
							 | 
						|
								## Project Overview
							 | 
						|
								
							 | 
						|
								Time Safari is an application designed to foster community building through
							 | 
						|
								gifts, gratitude, and collaborative projects. The app makes it easy and
							 | 
						|
								intuitive for users of any age and capability to recognize contributions,
							 | 
						|
								build trust networks, and organize collective action. It is built on services
							 | 
						|
								that preserve privacy and data sovereignty.
							 | 
						|
								
							 | 
						|
								## Core Goals
							 | 
						|
								
							 | 
						|
								1. **Connect**: Make it easy, rewarding, and non-threatening for people to
							 | 
						|
								
							 | 
						|
								   connect with others who have similar interests, and to initiate activities
							 | 
						|
								   together.
							 | 
						|
								
							 | 
						|
								2. **Reveal**: Widely advertise the great support and rewards that are being
							 | 
						|
								
							 | 
						|
								   given and accepted freely, especially non-monetary ones, showing the impact
							 | 
						|
								   gifts make in people's lives.
							 | 
						|
								
							 | 
						|
								## Technical Foundation
							 | 
						|
								
							 | 
						|
								### Architecture
							 | 
						|
								
							 | 
						|
								- **Privacy-preserving claims architecture** via endorser.ch
							 | 
						|
								
							 | 
						|
								- **Decentralized Identifiers (DIDs)**: User identities based on
							 | 
						|
								
							 | 
						|
								  public/private key pairs stored on devices
							 | 
						|
								
							 | 
						|
								- **Cryptographic Verification**: All claims and confirmations are
							 | 
						|
								
							 | 
						|
								  cryptographically signed
							 | 
						|
								
							 | 
						|
								- **User-Controlled Visibility**: Users explicitly control who can see their
							 | 
						|
								
							 | 
						|
								  identifiers and data
							 | 
						|
								
							 | 
						|
								- **Cross-Platform**: Web (PWA), Mobile (Capacitor), Desktop (Electron)
							 | 
						|
								
							 | 
						|
								### Current Database State
							 | 
						|
								
							 | 
						|
								- **Database**: SQLite via Absurd SQL (browser) and native SQLite
							 | 
						|
								
							 | 
						|
								  (mobile/desktop)
							 | 
						|
								
							 | 
						|
								- **Legacy Support**: IndexedDB (Dexie) for backward compatibility
							 | 
						|
								
							 | 
						|
								- **Status**: Modern database architecture fully implemented
							 | 
						|
								
							 | 
						|
								### Core Technologies
							 | 
						|
								
							 | 
						|
								- **Frontend**: Vue 3 + TypeScript + vue-facing-decorator
							 | 
						|
								
							 | 
						|
								- **Styling**: TailwindCSS
							 | 
						|
								
							 | 
						|
								- **Build**: Vite with platform-specific configs
							 | 
						|
								
							 | 
						|
								- **Testing**: Playwright E2E, Jest unit tests
							 | 
						|
								
							 | 
						|
								- **Database**: SQLite (Absurd SQL in browser), IndexedDB (legacy)
							 | 
						|
								
							 | 
						|
								- **State**: Pinia stores
							 | 
						|
								
							 | 
						|
								- **Platform Services**: Abstracted behind interfaces with factory pattern
							 | 
						|
								
							 | 
						|
								## Development Principles
							 | 
						|
								
							 | 
						|
								### Code Organization
							 | 
						|
								
							 | 
						|
								- **Platform Services**: Abstract platform-specific code behind interfaces
							 | 
						|
								
							 | 
						|
								- **Service Factory**: Use `PlatformServiceFactory` for platform selection
							 | 
						|
								
							 | 
						|
								- **Type Safety**: Strict TypeScript, no `any` types, use type guards
							 | 
						|
								
							 | 
						|
								- **Modern Architecture**: Use current platform service patterns
							 | 
						|
								
							 | 
						|
								### Architecture Patterns
							 | 
						|
								
							 | 
						|
								- **Dependency Injection**: Services injected via mixins and factory pattern
							 | 
						|
								
							 | 
						|
								- **Interface Segregation**: Small, focused interfaces over large ones
							 | 
						|
								
							 | 
						|
								- **Composition over Inheritance**: Prefer mixins and composition
							 | 
						|
								
							 | 
						|
								- **Single Responsibility**: Each component/service has one clear purpose
							 | 
						|
								
							 | 
						|
								### Testing Strategy
							 | 
						|
								
							 | 
						|
								- **E2E**: Playwright for critical user journeys
							 | 
						|
								
							 | 
						|
								- **Unit**: Jest with F.I.R.S.T. principles
							 | 
						|
								
							 | 
						|
								- **Platform Coverage**: Web + Capacitor (Pixel 5) in CI
							 | 
						|
								
							 | 
						|
								- **Quality Assurance**: Comprehensive testing and validation
							 | 
						|
								
							 | 
						|
								## Current Development Focus
							 | 
						|
								
							 | 
						|
								### Active Development
							 | 
						|
								
							 | 
						|
								- **Feature Development**: Build new functionality using modern platform
							 | 
						|
								
							 | 
						|
								  services
							 | 
						|
								
							 | 
						|
								- **Performance Optimization**: Improve app performance and user experience
							 | 
						|
								
							 | 
						|
								- **Platform Enhancement**: Leverage platform-specific capabilities
							 | 
						|
								
							 | 
						|
								- **Code Quality**: Maintain high standards and best practices
							 | 
						|
								
							 | 
						|
								### Development Metrics
							 | 
						|
								
							 | 
						|
								- **Code Quality**: High standards maintained across all platforms
							 | 
						|
								
							 | 
						|
								- **Performance**: Optimized for all target devices
							 | 
						|
								
							 | 
						|
								- **Testing**: Comprehensive coverage maintained
							 | 
						|
								
							 | 
						|
								- **User Experience**: Focus on intuitive, accessible interfaces
							 | 
						|
								
							 | 
						|
								---
							 | 
						|
								
							 | 
						|
								**See also**:
							 | 
						|
								
							 | 
						|
								- `.cursor/rules/app/timesafari_platforms.mdc` for platform-specific details
							 | 
						|
								
							 | 
						|
								- `.cursor/rules/app/timesafari_development.mdc` for
							 | 
						|
								
							 | 
						|
								  development workflow details
							 | 
						|
								
							 | 
						|
								**Status**: Active application context
							 | 
						|
								**Priority**: Critical
							 | 
						|
								**Estimated Effort**: Ongoing reference
							 | 
						|
								**Dependencies**: None
							 | 
						|
								**Stakeholders**: Development team, Product team
							 | 
						|
								
							 | 
						|
								- **Dependencies**: Vue 3, TypeScript, SQLite, Capacitor, Electron
							 | 
						|
								
							 | 
						|
								- **Stakeholders**: Development team, Product team
							 | 
						|
								
							 | 
						|
								## Model Implementation Checklist
							 | 
						|
								
							 | 
						|
								### Before TimeSafari Development
							 | 
						|
								
							 | 
						|
								- [ ] **Application Context**: Understand TimeSafari's community-building purpose
							 | 
						|
								- [ ] **Platform Analysis**: Identify target platforms (web, mobile, desktop)
							 | 
						|
								- [ ] **Architecture Review**: Review current platform service patterns
							 | 
						|
								- [ ] **Testing Strategy**: Plan testing approach for all platforms
							 | 
						|
								
							 | 
						|
								### During TimeSafari Development
							 | 
						|
								
							 | 
						|
								- [ ] **Platform Services**: Use abstracted platform services via interfaces
							 | 
						|
								- [ ] **Type Safety**: Implement strict TypeScript with type guards
							 | 
						|
								- **Modern Architecture**: Follow current platform service patterns
							 | 
						|
								- [ ] **Performance Focus**: Ensure performance on all target devices
							 | 
						|
								
							 | 
						|
								### After TimeSafari Development
							 | 
						|
								
							 | 
						|
								- [ ] **Cross-Platform Testing**: Test functionality across all platforms
							 | 
						|
								- [ ] **Performance Validation**: Verify performance meets requirements
							 | 
						|
								- [ ] **Code Quality**: Ensure high standards maintained
							 | 
						|
								- [ ] **Documentation Update**: Update relevant documentation
							 | 
						|
								
							 |