SG Accounting
A simple accounting app for Singapore professional-services companies (no inventory), covering clients, invoicing, expenses, a dashboard, and business income reporting.
Overview
This project is split into a React frontend and a Spring Boot backend, with MySQL as the persistence layer. It focuses on the workflows a small services company needs day-to-day: managing clients, issuing invoices (with line and cost items), tracking expenses, and reviewing income via reports and dashboard summaries.
Key features
- Clients: CRUD for client records (contact and address details).
- Invoices: CRUD invoices, line items and cost items, and invoice print output driven by client selection.
- Expenses: CRUD expense tracking.
- Reports: Business income summary by year (YA year).
- Dashboard: High-level totals for invoices, costs, and expenses.
- Business profile: “From” details for invoices stored in a JSON file managed via API.
Tech & tools
- Frontend: React + Vite + TypeScript + Ant Design
- Backend: Spring Boot + Maven
- Database: MySQL 8 (Docker)
Run locally (quick start)
- Start MySQL:
docker compose up -d(from the Accounting repo root) - Start backend:
cd backend && mvn spring-boot:run(runs onhttp://localhost:8080) - Start frontend:
cd frontend && npm install && npm run dev(runs onhttp://localhost:5173)