🚀 Live Demo: https://omake-expense-tracker.vercel.app/
Omake is a secure, full-stack financial dashboard designed to provide a visually stunning, insightful, and comprehensive experience for tracking your personal finances.
-
Secure Authentication: Robust JWT-based protection ensuring your financial data remains private and safe.
-
Full CRUD & History: Complete control over managing your expenses and income with an intuitive full history view.
-
Interactive Visualizations: Interactive charts featuring a deterministic color hashing algorithm to ensure consistent categorical representations across various metrics and timeframes.
Instructions to run the Omake project locally:
Ensure you have the following installed on your machine:
- Java 17
- Node.js (v18+)
- Maven (optional if using the included wrapper)
- Open a terminal and navigate to the
backenddirectory:cd backend - Set up your environment variables. You will need a standard PostgreSQL database running (locally or in the cloud) and a JWT secret for authentication. You can set these in your
application.propertiesor via a.envfile:SPRING_DATASOURCE_URL(Your PostgreSQL connection URL, e.g.,jdbc:postgresql://localhost:5432/omake_db)SPRING_DATASOURCE_USERNAME(Your DB Username)SPRING_DATASOURCE_PASSWORD(Your DB Password)JWT_SECRET(A strong, random secret string for token signing)
- Run the Spring Boot backend server:
./mvnw spring-boot:run
The server will start on
http://localhost:8080.
- Open a new terminal and navigate to the
frontenddirectory:cd frontend - Install the necessary NPM dependencies:
npm install
- Start the Vite development server:
npm run dev
The application will be accessible at
http://localhost:5173.
- Backend tests (JUnit & Mockito):
cd backend ./mvnw test
- Frontend tests (Vitest):
cd frontend npm run test
Omake is strictly built upon an API-First approach. The /docs/api-spec.md acts as the definitive Single Source of Truth for the contract between the RESTful Spring Boot backend and the React Vite Single Page Application (SPA). By clearly separating frontend UI from backend business logic in a decoupled monorepo fashion, the project provides high scalability, simple maintainability, and clean code architecture.