Proposal

Money Manager – Personal Finance Management System on AWS

A comprehensive solution for personal finance management with AWS Cloud

1. Executive Summary

Money Manager is a personal finance management application running on both Web and Mobile. It allows users to track income and expenses, create budgets, manage spending jars and savings goals, generate financial forecasts, export reports via Excel/Email, scan invoices with OCR, and features an AI assistant named Nova Money for financial advisory.

From a technical standpoint, the system is built on a multi-tier architecture — the client side consists of Web/Mobile applications, while the server side runs on AWS services.

2. Objectives

With Money Manager, I aim to create more than just a simple income/expense tracking app. Specifically, my goals include:

  • A real-time financial management dashboard on both Web and Mobile, enabling users to instantly view their income, expenses, budgets, and savings jars without manual consolidation.
  • The Nova Money AI assistant acts as a financial companion — not only answering questions but also proactively suggesting and forecasting future spending trends.
  • Reduce repetitive data entry through automation via OCR invoice scanning and scheduled Excel/Email report exports.
  • Build a sufficiently stable infrastructure (High Availability, multi-AZ on AWS) to ensure smooth, uninterrupted system operation.

To measure progress, I’ve set a few simple criteria: the system must deploy successfully on AWS and withstand load/failover tests; users must be able to complete core business flows (sign up/login, record transactions, view reports, chat with AI) without issues; and actual operational costs must stay within the budget estimated in section 6.

3. Problem Statement

Current situation: Personal finance management is typically done manually or through simple apps that lack deep analytics, spending trend forecasting, and AI-powered financial decision support.

Solution: Money Manager leverages AWS Cloud architecture with High Availability, combined with AI (Google Gemini and OpenRouter GPT-OSS) to deliver a complete financial management experience — from income/expense tracking, budgeting, financial forecasting, to OCR invoice recognition and chat with the Nova Money AI assistant.

Benefits: Helps users save time on financial management, spend smarter with AI-powered forecasts, and provides a foundation for future Premium feature development.

4. System Architecture

The entire system is deployed on AWS Cloud in the Singapore region (ap-southeast-1), within a VPC spanning 2 Availability Zones to ensure High Availability.

Money Manager Platform Architecture Diagram on AWS
Figure 1. Money Manager Platform Architecture Diagram on AWS

Technologies used:

  • Backend: Spring Boot (Java 21), layered architecture Controller -> Service -> Repository
  • Web Frontend: React 19 + Vite
  • Mobile: React Native (Expo)
  • AI: Google Gemini (chat, agent, OCR, forecasting) and OpenRouter GPT-OSS (report analysis for Premium tier)

Core AWS services:

  • Application Load Balancer (ALB): Placed in Public Subnet, distributes requests to backend EC2 instances, spans 2 AZs.
  • Amazon EC2 + Auto Scaling Group: Runs Spring Boot backend in Private Subnet, auto-scales based on load.
  • EC2 Worker: Dedicated instance for background job processing (consuming from SQS).
  • Amazon RDS MySQL: Primary database, deployed multi-AZ.
  • Amazon ElastiCache (Redis): Used for caching, session management, and rate limiting. Deployed HA across 2 AZs.
  • Amazon DynamoDB: Stores Nova Money AI chat history with low-latency access.
  • Amazon SQS + DLQ: Message queue for heavy tasks (Excel report export, PDF invoice rendering, scheduled report delivery). Includes Dead-Letter Queue for failed job handling.
  • AWS Lambda: Serverless function for generating report files and invoices.
  • Amazon S3: Stores reports, PDF invoices, and invoice images.
  • Amazon SNS: Sends email alerts for budget overruns or expiring subscriptions.
  • Amazon CloudWatch: Full system monitoring — logs, metrics, alarms for ALB, EC2, RDS, Lambda, SQS.
  • NAT Gateway: Enables EC2 in Private Subnet to access external services.
  • IAM Roles: Manages access permissions between AWS services.

Core processing flows:

  • User flow: User accesses via Web/Mobile -> passes through Cloudflare (DNS, WAF, DDoS protection, Rate Limit, Turnstile anti-bot) -> reaches ALB -> forwarded to EC2 Web-API.
  • Business flow: EC2 handles login (JWT + Google OAuth2), income/expense management, budgets, savings jars -> writes to RDS MySQL, caches in ElastiCache Redis.
  • AI chat flow: User chats with Nova Money -> history saved to DynamoDB -> recent messages retrieved as context for the AI model.
  • Async flow: EC2 Web-API pushes job to SQS -> EC2 Worker consumes -> invokes Lambda to generate files -> saves results to S3.
  • Notification flow: Alert events trigger -> SNS sends email to Admin.
  • Outbound flow: EC2 -> NAT Gateway -> PayOS (QR payment), Brevo SMTP (send OTP emails, reports), Google Gemini API.

5. Technical Implementation

Execution phases:

  • Research and design: Requirements analysis, AWS architecture design following Well-Architected Framework, database schema and API endpoint design.
  • Cost estimation: Use AWS Pricing Calculator to estimate costs for RDS, ElastiCache, EC2, Lambda, S3 and related services.
  • Backend development: Code Spring Boot API (Java 21), integrate JWT/OAuth2, connect RDS MySQL, set up ElastiCache Redis.
  • Frontend development: Build Web interface with React 19 + Vite and Mobile app with React Native Expo.
  • AI integration: Connect Google Gemini for chat/agent/OCR/forecasting, OpenRouter GPT-OSS for Premium report analysis.
  • Deploy and testing: Deploy to AWS (VPC, EC2 ASG, ALB, RDS, ElastiCache), configure Cloudflare, run end-to-end tests.

Technical requirements:

  • Backend: Java 21, Spring Boot, Spring Security (JWT + OAuth2), Spring Data JPA, Hibernate.
  • Frontend: React 19, Vite, React Native (Expo), responsive design.
  • Database: RDS MySQL (multi-AZ), DynamoDB (chat history), ElastiCache Redis (cache/session).
  • Infrastructure: VPC (2 AZ), ALB, EC2 ASG (Graviton), NAT Gateway, SQS + DLQ, Lambda, S3, SNS, CloudWatch, IAM Roles.
  • Security: Cloudflare (WAF, DDoS protection, Rate Limit, Turnstile), HTTPS, IAM policies, Security Groups.

6. Implementation Roadmap

  • Weeks 1–6 (20/04 – 29/05): Learn foundational AWS services (IAM, VPC, EC2, RDS, S3, Lambda, API Gateway, CloudFormation, DynamoDB) through CloudJourney labs.
  • Weeks 7–8 (01/06 – 12/06):
    • Explore source code, analyze architecture, set up dev environment.
    • Trial deploy to EC2, configure RDS, integrate S3/CloudFront.
    • Study Well-Architected Framework, AWS SAM and design project architecture.
  • Week 9 (15/06 – 19/06):
    • Develop core features: Spring Boot backend, React frontend, database connection.
    • Deploy to EC2 in Private Subnet, configure ALB and Auto Scaling Group.
  • Week 10 (22/06 – 26/06):
    • Set up IAM, security (JWT, OAuth2, Cloudflare WAF).
    • Deploy Spring Boot backend to EC2 ASG, configure ALB, RDS MySQL, ElastiCache.
    • Run unit tests, integration tests, load tests, and performance optimization.
  • Week 11 (29/06 – 03/07):
    • Optimize UI/UX for Web (React 19 + Vite) and Mobile (React Native Expo), run E2E tests.
    • Configure CloudWatch monitoring, prepare slides and demo.
    • Code review, write architecture report, backup data.
  • Week 12 (06/07 – 10/07):
    • Post-deploy support, security hardening, AWS cost optimization.
    • Test recovery/failover (RDS multi-AZ, ElastiCache HA).
    • Submit report and presentation.

7. Cost Estimation

Monthly infrastructure cost (estimated):

Pricing sourced directly from official AWS pricing pages for Singapore region (ap-southeast-1), based on 730 hours/month.

  • Amazon EC2: ~$19.27/month (t3.micro, minimum 2 instances, $0.0132/hour/instance).
  • Application Load Balancer: ~$18.40/month (base hourly fee, $0.0252/hour) + additional LCU charges ($0.008/LCU-hour).
  • Amazon RDS MySQL: ~$37.96/month (db.t3.micro, Multi-AZ with one standby, $0.052/hour).
  • Amazon ElastiCache (Redis): ~$36.50/month (cache.t3.micro, 2-node HA replication cluster, $0.025/hour/node — Redis OSS cluster with replication is priced higher than single node at $0.02/hour).
  • Amazon DynamoDB: ~$1.00/month (on-demand, chat history storage; $0.71/million WRU, $0.1425/million RRU).
  • Amazon S3: ~$0.50/month (reports, invoices, images; $0.025/GB, S3 Standard).
  • AWS Lambda: ~$0.00/month (within free tier: 1 million requests + 400,000 GB-seconds/month).
  • Amazon SQS: ~$0.00/month (within free tier: 1 million requests/month).
  • Amazon SNS: ~$0.00/month (within free tier: 1 million publishes/month).
  • NAT Gateway: ~$43.07/month (hourly fee, $0.059/hour) + data processing fees based on actual traffic ($0.059/GB).
  • Amazon CloudWatch: ~$3.00/month (estimated for usage beyond free tier of 10 metrics/5GB logs; actual cost depends on log volume and alarms).
  • Cloudflare (Free plan): $0.00/month.

Total (fixed portion): $159.70/month ($1,916.40/year), excluding variable charges based on actual ALB (LCU) and NAT Gateway (GB data processed) traffic.

Verification: All pricing above has been cross-checked using AWS Pricing Calculator (AWS official cost estimation tool) for Asia Pacific (Singapore) region, matching manual pricing page lookups except for ElastiCache (2-node HA replication cluster on Calculator shows $0.025/hour/node, higher than the $0.02/hour single node price on the general pricing page).

8. Risk Assessment

Key risks:

  • Database connection failure: high impact but low probability, mitigated by RDS multi-AZ ensuring availability.
  • System overload: high impact, medium probability. Auto Scaling Group handles load fluctuations.
  • Data loss: high impact but low probability due to RDS multi-AZ combined with automated backups.
  • DDoS/Bot attacks: medium impact and probability, handled by Cloudflare WAF, Rate Limit and Turnstile.
  • AWS budget overrun: medium impact and probability, using CloudWatch billing alarm for early warnings.

Mitigation:

  • Database: RDS multi-AZ failover, ElastiCache HA.
  • Performance: Auto Scaling Group, ElastiCache Redis caching, SQS offloads heavy tasks from main flow.
  • Security: Cloudflare WAF + Turnstile, JWT + OAuth2, IAM least privilege, Security Groups.
  • Cost: CloudWatch billing alarm, Reserved Instances, Lambda optimization.

Fallback plans:

  • Auto failover between 2 AZs for RDS MySQL and ElastiCache Redis.
  • Dead-Letter Queue for SQS to retry or debug failed jobs.
  • CloudWatch Alarm automatically notifies when performance issues or error rates increase.

9. Expected Results

Technical: Build a personal finance management system running stably on AWS with High Availability, supporting both Web and Mobile. Integrate AI (Google Gemini, OpenRouter) for financial forecasting, OCR invoice scanning, and the Nova Money assistant. Efficient async processing with SQS + Lambda for report export and invoice rendering.

Long-term: The system can scale flexibly thanks to Auto Scaling Group and multi-AZ architecture. Potential for Premium feature development (deep analysis via OpenRouter GPT-OSS) and additional payment gateway integration.