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
|
|
|