A full-stack Expense Tracker application that allows users to record daily expenses and view them in real time.
The project demonstrates frontend–backend integration, REST API design, and AWS DynamoDB usage for persistent storage.
This project was built to understand end-to-end application development and cloud-native architecture.
Managing daily expenses is often done manually or using complex tools.
This project provides a simple, lightweight expense tracking system where:
- Users can add expenses with title, amount, and date
- Data is stored persistently in AWS DynamoDB
- Expenses are fetched dynamically via REST APIs
- The UI updates automatically after every change
- React (Create React App)
- Axios
- HTML / CSS
- Spring Boot
- REST APIs
- AWS SDK for DynamoDB
- Deployed on AWS Elastic Beanstalk
- AWS DynamoDB (NoSQL)
- Scalable
- Schema-less
- Managed by AWS
- Expose REST APIs for expense management
- Persist and fetch data from DynamoDB
- Handle CORS and request validation
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/expenses |
Fetch all expenses |
| POST | /api/expenses |
Add a new expense |
{
"title": "Coffee",
"amount": 150,
"date": "2025-01-12"
}- Collect user input
- Display expenses in a table
- Call backend APIs using Axios
- Update UI automatically after data changes
const API = "http://localhost:8080/api/expenses";For deployed backend:
const API = "http://<elastic-beanstalk-url>/api/expenses";cd backend
mvn spring-boot:runRuns On:
http://localhost:8080
cd frontend
npm install
npm startRuns On:
http://localhost:3000
npm run build
Output:
build/
├── index.html
├── asset-manifest.json
└── static/
- Designing RESTful APIs
- Integrating React with Spring Boot
- Using AWS DynamoDB with Spring Boot
- Handling cross-origin requests (CORS)
- Deploying backend services on AWS
Harshvardhan Rao
Java Backend & Full-Stack Developer
Focused on building scalable, cloud-native systems 🚀