ποΈ 1. System Overview
Multi-cloud task management application
React.js with PWA support
Spring Boot REST API
MariaDB with backups
AWS + GCP + Azure
Google & Facebook OAuth
Stripe Subscriptions
Complete Technical Documentation & Architecture Reference
Multi-cloud task management application
React.js with PWA support
Spring Boot REST API
MariaDB with backups
AWS + GCP + Azure
Google & Facebook OAuth
Stripe Subscriptions
Authentication sequence using Google as identity provider
| Setting | Value |
|---|---|
| Authorization Endpoint | https://accounts.google.com/o/oauth2/v2/auth |
| Token Endpoint | https://oauth2.googleapis.com/token |
| Scopes | openid, email, profile |
| Redirect URI (Prod) | https://taskmanager.sriinfosoft.com/oauth2/callback/google |
| Redirect URI (Dev) | http://localhost:3000/oauth2/callback/google |
Authentication sequence using Facebook as identity provider
| Setting | Value |
|---|---|
| Authorization Endpoint | https://www.facebook.com/v18.0/dialog/oauth |
| Token Endpoint | https://graph.facebook.com/v18.0/oauth/access_token |
| User Info Endpoint | https://graph.facebook.com/me?fields=id,name,email |
| Scopes | email, public_profile |
| App Mode | Development (Live requires Business Verification) |
Browser push notifications using VAPID authentication
| Component | Technology |
|---|---|
| Protocol | Web Push API (RFC 8030) |
| Authentication | VAPID (Voluntary Application Server Identification) |
| Encryption | ECDH + AES-GCM |
| Backend Library | webpush-java (nl.martijndwars) |
| Frontend | Service Worker + Push API |
SMS notifications for premium subscribers via AWS Simple Notification Service
Daily digest and task reminder emails via AWS Simple Email Service
Subscription management with Stripe Checkout and webhooks
| Event | Action |
|---|---|
checkout.session.completed |
Activate subscription |
customer.subscription.created |
Log subscription start |
customer.subscription.updated |
Update plan/status |
customer.subscription.deleted |
Downgrade to Free |
invoice.payment_succeeded |
Log payment |
invoice.payment_failed |
Mark as past_due |
Production cloud infrastructure on Amazon Web Services (us-east-1)
| Service | Purpose | Configuration |
|---|---|---|
| Route 53 | DNS management | A record β CloudFront |
| CloudFront | CDN + SSL/TLS | ACM certificate, S3 + EC2 origins |
| S3 | Static hosting | React build files, versioning enabled |
| EC2 | Application server | t3.small, Docker container |
| RDS | Database | db.t3.micro, automated backups |
| Secrets Manager | Credentials | DB passwords, API keys, VAPID keys |
End-to-end automation for build, test, deploy, and operations
| Script | Purpose | Frequency |
|---|---|---|
deploy-frontend.sh |
Build React, upload to S3, invalidate CloudFront | On push |
deploy-backend.sh |
Build JAR, Docker build, push, restart container | On push |
db-backup.sh |
Full MariaDB backup to S3 | Daily 2 AM |
db-restore.sh |
Restore from S3 backup | On demand |
ssl-renew.sh |
Check/renew SSL certificates | Weekly |
health-check.sh |
API endpoint monitoring | Every 5 min |
log-rotate.sh |
Archive and compress old logs | Daily |
End-to-end request processing from client to database and back
| Step | Component | Action |
|---|---|---|
| 1 | Client β CloudFront | HTTPS request with SSL termination |
| 2 | CloudFront | Check edge cache for content |
| 3a | CloudFront β S3 | Fetch static assets (JS, CSS, images) |
| 3b | CloudFront β Backend | Forward API requests to EC2 |
| 4 | Backend | Check application cache (Redis optional) |
| 5 | Backend β MariaDB | Query database if cache miss |
| 6 | Response | Return through CloudFront to client |