4 min read
System Architecture
Overall Architecture
I Hate PPT uses a modern microservices architecture to ensure high availability and scalability.
Core Components
Frontend Application
- Tech Stack: Next.js 15 + TypeScript + Tailwind CSS
- Features: User interface, document editing, real-time preview
- Deployment: Vercel / Cloud Run
Backend Services
- Tech Stack: Python + FastAPI
- Features: API endpoints, business logic, data processing
- Deployment: Google Cloud Run
AI Services
- Model: DeepSeek API
- Features: Content generation, intelligent editing, image processing
- Integration: RESTful API
Data Storage
- Database: Supabase (PostgreSQL)
- File Storage: Firebase Storage
- Cache: Redis
Data Flow
- User inputs content in frontend
- Frontend calls backend API
- Backend processes business logic
- Calls AI service to generate content
- Saves to database
- Returns results to frontend
Microservices Architecture
User Service
- Authentication: User login, registration, profile management
- Authorization: Role-based access control
- User Management: User data, preferences, settings
Content Service
- PPT Generation: AI-powered content creation
- Document Processing: File upload, processing, conversion
- Template Management: Template storage, retrieval, customization
AI Service
- Content Generation: Text generation, structure creation
- Image Processing: Image search, optimization, generation
- Language Processing: Multi-language support, translation
Payment Service
- Billing: Credit management, payment processing
- Subscription: Plan management, renewal handling
- Analytics: Usage tracking, cost analysis
Database Design
User Tables
- Users: User profiles, authentication data
- Sessions: User sessions, login history
- Preferences: User settings, customizations
Content Tables
- Presentations: PPT metadata, content structure
- Templates: Template library, customization options
- Files: File storage, metadata, permissions
Business Tables
- Credits: Credit balance, transaction history
- Subscriptions: Plan details, billing information
- Usage: Usage tracking, analytics data
API Design
RESTful APIs
- User APIs: Authentication, profile management
- Content APIs: PPT generation, editing, management
- Payment APIs: Billing, subscription management
- Admin APIs: System administration, monitoring
GraphQL APIs
- Query Optimization: Efficient data fetching
- Real-time Updates: Live data synchronization
- Complex Queries: Advanced data retrieval
Security Architecture
Authentication
- OAuth 2.0: Google, GitHub integration
- JWT Tokens: Secure session management
- Multi-factor: Enhanced security options
Authorization
- Role-based Access: User, admin, enterprise roles
- Resource Permissions: Fine-grained access control
- API Security: Rate limiting, request validation
Data Protection
- Encryption: Data encryption at rest and in transit
- Privacy: GDPR compliance, data anonymization
- Audit: Comprehensive audit logging
Scalability Design
Horizontal Scaling
- Load Balancing: Distribute traffic across instances
- Auto Scaling: Automatic scaling based on demand
- Container Orchestration: Kubernetes deployment
Performance Optimization
- Caching: Redis for session and data caching
- CDN: Global content delivery network
- Database Optimization: Query optimization, indexing
Monitoring and Observability
Application Monitoring
- APM: Application performance monitoring
- Error Tracking: Real-time error detection
- User Analytics: User behavior tracking
Infrastructure Monitoring
- Server Metrics: CPU, memory, disk usage
- Network Monitoring: Latency, throughput, errors
- Database Monitoring: Query performance, connection pools
Deployment Architecture
Development Environment
- Local Development: Docker containers
- Testing: Automated testing pipeline
- Staging: Production-like environment
Production Environment
- Cloud Platform: Google Cloud Platform
- Containerization: Docker containers
- Orchestration: Kubernetes clusters
Disaster Recovery
Backup Strategy
- Database Backups: Daily automated backups
- File Backups: Redundant file storage
- Configuration Backups: Infrastructure as code
Recovery Procedures
- RTO: Recovery Time Objective < 4 hours
- RPO: Recovery Point Objective < 1 hour
- Failover: Automatic failover mechanisms
Future Architecture
Planned Improvements
- Edge Computing: Edge deployment for better performance
- AI Optimization: Custom AI models for better results
- Blockchain: Decentralized content verification
- IoT Integration: Smart device integration
Technology Roadmap
- Microservices: Further service decomposition
- Event-driven: Event-driven architecture
- Serverless: Serverless function deployment
- ML Pipeline: Machine learning pipeline integration
Need more technical details? Contact our engineering team for detailed architecture documentation.