A modern expense tracking application built with React, Go, and PostgreSQL that helps users manage their personal finances effectively.
- Unified Tracking: Consolidate cash, credit, and debit expenses in one place
- Real-time Insights: Visualize spending patterns and budgets through interactive charts
- Budget Management: Set and track budgets by category
- Income Tracking: Monitor multiple income sources
- Category Management: Organize expenses with customizable categories
- React.js
- TypeScript
- Vite
- Tailwind CSS
- Go
- PostgreSQL
- Docker & Docker Compose
- Azure Container Registry (ACR)
- Azure Web Apps
- Azure DevOps Pipelines
- Expense: Tracks individual expenses with amount, date, and category
- Income: Records income sources and amounts
- Budget: Manages spending limits by category
- Category: Organizes expenses into logical groups
- Node.js 16+
- Go 1.23+
- Docker and Docker Compose
- PostgreSQL
- Clone the repository
- Start the services using Docker Compose:
docker compose up
The application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:8080
Run the Go tests:
cd backend
go test ./internal/tests/integration
go test ./internal/tests/models
The project uses Azure DevOps Pipelines for continuous integration and deployment:
- Frontend Pipeline: Builds and deploys the React application
- Backend Pipeline: Builds, tests, and deploys the Go backend
- Automated Testing: Runs unit and integration tests
- Docker Integration: Builds and pushes container images to Azure Container Registry
The application is deployed using Azure Web Apps for Containers:
- Frontend: Azure Web App (React)
- Backend: Azure Web App (Go)
- Database: PostgreSQL deployed on Railway