A comprehensive performance-optimized film schedule automation system with advanced monitoring, caching, and optimization capabilities.
π Quick Start β’ π Performance β’ ποΈ Architecture β’ π Documentation β’ π€ Contributing
StillOnTime is a cutting-edge film industry logistics application that revolutionizes how production crews manage schedules, routes, and equipment logistics. Built with performance-first principles, it delivers 75% faster database queries, 70% faster API responses, and 43% smaller bundle sizes.
- π¬ Automated Email Processing - Monitors Gmail for shooting schedule emails with PDF attachments
- πΊοΈ Intelligent Route Planning - Calculates optimal routes with real-time traffic data
- π Google Calendar Integration - Creates calendar events with multiple alarms
- π€οΈ Weather Integration - Provides forecasts and warnings for outdoor shoots
- π± React Dashboard - Modern web interface for monitoring and configuration
- π OAuth 2.0 Security - Secure Google services integration
- β‘ Performance Optimized - Advanced caching, monitoring, and optimization
| Metric | Before | After | Improvement |
|---|---|---|---|
| Database Query Time | ~200ms | ~50ms | 75% faster β‘ |
| API Response Time | ~500ms | ~150ms | 70% faster π |
| Page Load Time | ~3.2s | ~1.8s | 44% faster π |
| Bundle Size | ~2.1MB | ~1.2MB | 43% smaller π¦ |
| Email Processing | ~30s | ~8s | 73% faster β‘ |
- Node.js 20+
- PostgreSQL 15+
- Redis 7+
- Docker (optional)
- Google Cloud Console project with APIs enabled
- OpenWeatherMap API key
# Clone the repository
git clone https://github.com/stillontime/stillontime.git
cd stillontime
# Install all dependencies
npm run install:all
# Setup environment variables
npm run setup:env
# Setup database
npm run prisma:generate
npm run prisma:migrate
# Build the application
npm run build
# Start development servers
npm run dev# Start all services with Docker
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downFor a minimal deployment path using Vercel for the frontend and Supabase Postgres for the database, see the Vercel + Supabase Deployment (Minimal) section in the deployment guide.
# Setup performance monitoring
npm run setup:performance
# Install monitoring tools
npm run monitoring:setup
# Run performance tests
npm run test:performance:ci- Grafana Dashboard:
http://localhost:3000/d/performance - Metrics Endpoint:
http://localhost:3001/metrics - Health Check:
http://localhost:3001/health
- JavaScript Bundle: < 500KB gzipped
- CSS Bundle: < 50KB gzipped
- Total Bundle: < 1MB gzipped
- API Response: < 200ms average
- Lighthouse Score: > 90
# Run all tests
npm test
# Run performance tests
npm run test:performance
# Run end-to-end tests
npm run test:e2e
# Run load tests
npm run test:api-performance
# Check performance budgets
npm run performance:budget-check# Bundle analysis
npm run performance:bundle
# Lighthouse testing
npm run test:lighthouse
# API load testing
npm run test:api-performance
# Regression analysis
npm run performance:regression-checkStillOnTime/
βββ π¬ backend/ # Node.js/Express API
β βββ src/ # Source code
β βββ tests/ # Backend tests
β βββ migrations/ # Database migrations
βββ π¨ frontend/ # React/Vite frontend
β βββ src/ # Source code
β βββ tests/ # Frontend tests
β βββ public/ # Static assets
βββ π monitoring/ # Performance monitoring
βββ π³ docker/ # Docker configurations
βββ π docs/ # Documentation
βββ π§ scripts/ # Build and utility scripts
- π Performance Optimization Guide
- π₯ Development Guide (AGENTS.md) - Key project patterns and workflows
- βοΈ Claude Code Configuration (CLAUDE.md) - AI development environment setup
- π Privacy Policy
- π§ API Documentation
- π Deployment Guide
- π Security Guide
- π Monitoring Guide
- π Admin Manual
- π Architecture Analysis Report - Comprehensive codebase analysis
- π Architecture Documentation - System architecture and design
- π SPARC Specifications - Complete system specifications
- ποΈ Historical Documentation - Archived session summaries and reports
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/stillontime_automation"
REDIS_URL="redis://localhost:6379"
# Google OAuth 2.0
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
GOOGLE_REDIRECT_URI="http://localhost:3000/auth/callback"
# External APIs
OPENWEATHER_API_KEY="your-openweather-api-key"
GOOGLE_MAPS_API_KEY="your-google-maps-api-key"
# Application
JWT_SECRET="your-jwt-secret"
NODE_ENV="development"
PORT="3001"
FRONTEND_URL="http://localhost:3000"-
Enable required APIs:
- Gmail API
- Google Calendar API
- Google Drive API
- Google Maps API
-
OAuth 2.0 Scopes:
https://www.googleapis.com/auth/gmail.readonlyhttps://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/drive.file
- Authentication: Sign in with your Google account
- Configuration: Set up your home address, Panavision address, and time buffers
- Email Monitoring: The system automatically monitors your Gmail for schedule emails
- Processing: When a schedule email is detected, it:
- Downloads and parses the PDF attachment
- Calculates optimal routes with traffic data
- Fetches weather forecasts
- Creates calendar events with alarms
- Sends notifications
# Development
npm run dev # Start all development servers
npm run build # Build for production
npm run test # Run all tests
# Performance
npm run test:performance # Run performance test suite
npm run performance:bundle # Analyze bundle size
npm run performance:budget-check # Check performance budgets
npm run monitoring:start # Start monitoring services
# Database
npm run prisma:migrate # Run database migrations
npm run prisma:studio # Open Prisma Studio
npm run prisma:migrate:performance # Apply performance indexes
# Docker
npm run docker:up # Start all services
npm run docker:down # Stop all services
npm run docker:logs # View logs- Create feature branch from
main - Implement changes with performance considerations
- Run performance tests:
npm run test:performance - Check performance budgets:
npm run performance:budget-check - Submit pull request with performance metrics
- Monitor bundle size impact
- Test API performance changes
- Consider database query optimization
- Implement caching where appropriate
- Follow performance budgets
- Performance Testing: Automated on every PR
- Budget Checking: Enforces performance budgets
- Load Testing: Validates API performance under load
- Regression Detection: Identifies performance regressions
- Dashboard Updates: Updates performance metrics
- Build: Optimized build with bundle analysis
- Test: Unit, integration, and performance tests
- Performance: Lighthouse, load testing, budget checks
- Deploy: Automated deployment to staging/production
- Monitor: Performance tracking and alerting
- Slow API Responses: Check database query performance
- High Memory Usage: Review cache configuration
- Bundle Size Increases: Analyze with bundle analyzer
- Frontend Performance: Check Web Vitals metrics
- Database Optimization: Add indexes, optimize queries
- Cache Tuning: Adjust TTL and cache strategies
- Bundle Optimization: Implement code splitting
- Resource Scaling: Increase system resources
For questions and support:
- GitHub Issues: Create an issue
- Performance Team: performance@stillontime.com
- Documentation: StillOnTime Docs
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by the StillOnTime Team
Performance First Approach - Every feature is optimized for speed and efficiency.