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.
		
		
		
		
		
			
		
			
				
					
					
						
							174 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							174 lines
						
					
					
						
							4.1 KiB
						
					
					
				| # Time Safari Development — Workflow and Processes | |
| 
 | |
| > **Agent role**: Reference this file for development workflow details when | |
|   working with TimeSafari development processes. | |
| 
 | |
| ## Development Workflow | |
| 
 | |
| ### Build Commands | |
| 
 | |
| ```bash | |
| 
 | |
| # Web (development) | |
| 
 | |
| npm run build:web | |
| 
 | |
| # Mobile | |
| 
 | |
| npm run build:capacitor | |
| npm run build:native | |
| 
 | |
| # Desktop | |
| 
 | |
| npm run build:electron | |
| npm run build:electron:appimage | |
| npm run build:electron:deb | |
| npm run build:electron:dmg | |
| 
 | |
| ``` | |
| 
 | |
| ### Testing Commands | |
| 
 | |
| ```bash | |
| 
 | |
| # Web E2E | |
| 
 | |
| npm run test:web | |
| 
 | |
| # Mobile | |
| 
 | |
| npm run test:mobile | |
| npm run test:android | |
| npm run test:ios | |
| 
 | |
| # Type checking | |
| 
 | |
| npm run type-check | |
| npm run lint-fix | |
| 
 | |
| ``` | |
| 
 | |
| ## 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 | |
| 
 | |
| ## Development Environment | |
| 
 | |
| ### Required Tools | |
| 
 | |
| - **Node.js**: LTS version with npm | |
| 
 | |
| - **Git**: Version control with proper branching strategy | |
| 
 | |
| - **IDE**: VS Code with recommended extensions | |
| 
 | |
| - **Platform Tools**: Android Studio, Xcode (for mobile development) | |
| 
 | |
| ### Environment Setup | |
| 
 | |
| 1. **Clone Repository**: `git clone <repository-url>` | |
| 
 | |
| 2. **Install Dependencies**: `npm install` | |
| 
 | |
| 3. **Environment Variables**: Copy `.env.example` to `.env.local` | |
| 
 | |
| 4. **Platform Setup**: Follow platform-specific setup guides | |
| 
 | |
| ### Quality Assurance | |
| 
 | |
| - **Linting**: ESLint with TypeScript rules | |
| 
 | |
| - **Formatting**: Prettier for consistent code style | |
| 
 | |
| - **Type Checking**: TypeScript strict mode enabled | |
| 
 | |
| - **Testing**: Comprehensive test coverage requirements | |
| 
 | |
| --- | |
| 
 | |
| **See also**: | |
| 
 | |
| - `.cursor/rules/app/timesafari.mdc` for core application context | |
| 
 | |
| - `.cursor/rules/app/timesafari_platforms.mdc` for platform-specific details | |
| 
 | |
| **Status**: Active development workflow | |
| **Priority**: High | |
| **Estimated Effort**: Ongoing reference | |
| **Dependencies**: timesafari.mdc, timesafari_platforms.mdc | |
| **Stakeholders**: Development team, DevOps team | |
| 
 | |
| ## Model Implementation Checklist | |
| 
 | |
| ### Before TimeSafari Development | |
| 
 | |
| - [ ] **Environment Setup**: Verify development environment is ready | |
| - [ ] **Platform Tools**: Ensure platform-specific tools are available | |
| - [ ] **Dependencies**: Check all required dependencies are installed | |
| - [ ] **Environment Variables**: Configure local environment variables | |
| 
 | |
| ### During TimeSafari Development | |
| 
 | |
| - [ ] **Platform Services**: Use modern platform service patterns | |
| - [ ] **Code Quality**: Follow ESLint and TypeScript strict rules | |
| - [ ] **Testing**: Implement comprehensive testing strategy | |
| - [ ] **Performance**: Optimize for all target platforms | |
| 
 | |
| ### After TimeSafari Development | |
| 
 | |
| - [ ] **Quality Checks**: Run linting, formatting, and type checking | |
| - [ ] **Testing**: Execute comprehensive tests across platforms | |
| - [ ] **Performance Validation**: Verify performance meets requirements | |
| - [ ] **Documentation**: Update development documentation
 | |
| 
 |