A modern, full-stack application for tracking personal expenses and income with a beautiful, responsive UI.
- Expense & Income Tracking: Add, view, and manage your financial transactions
- Dashboard Overview: Get a quick snapshot of your financial health
- Transaction Categories: Organize transactions with predefined categories
- Financial Summary: Detailed insights into your spending patterns
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Real-time Updates: See your financial data update instantly
- Spring Boot 3.4.3: Java-based REST API
- MongoDB: NoSQL database for data persistence
- Spring Security: Authentication and authorization
- Maven: Dependency management and build tool
- React 18: Modern JavaScript library for building user interfaces
- Bootstrap 5: CSS framework for responsive design
- Font Awesome: Icon library
- React Router: Client-side routing
- Java 17 or higher
- Node.js 16 or higher
- MongoDB (local or cloud instance)
- Maven
-
Navigate to the backend directory:
cd backend -
Configure MongoDB connection in
src/main/resources/application.yml:spring: data: mongodb: database: spendsmart uri: mongodb://localhost:27017/spendsmart
-
Run the Spring Boot application:
./mvnw spring-boot:run
The backend will start on http://localhost:8080
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm start
The frontend will start on http://localhost:3000
GET /api/transactions?userId={userId}- Get all transactions for a userGET /api/transactions/type/{type}?userId={userId}- Get transactions by type (EXPENSE/INCOME)POST /api/transactions- Create a new transactionGET /api/transactions/{id}- Get a specific transactionPUT /api/transactions/{id}- Update a transactionDELETE /api/transactions/{id}- Delete a transactionGET /api/transactions/summary?userId={userId}- Get financial summary
{
"id": "string",
"description": "string",
"amount": "number",
"type": "EXPENSE|INCOME",
"category": "string",
"date": "datetime",
"userId": "string"
}- Overview of total income, expenses, and current balance
- Quick action buttons for common tasks
- Visual indicators for financial health
- Toggle between expense and income
- Predefined categories for easy organization
- Form validation and user-friendly interface
- View all transactions in a sortable table
- Filter by transaction type (All, Expenses, Income)
- Delete transactions with confirmation
- Category icons for visual identification
- Detailed cash flow analysis
- Financial health indicators
- Savings rate and expense ratio calculations
- Personalized financial insights and tips
- Food & Dining
- Transportation
- Shopping
- Entertainment
- Bills & Utilities
- Healthcare
- Education
- Travel
- Other
- Salary
- Freelance
- Investment
- Business
- Gift
- Other
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@spendsmart.com or create an issue in the repository.