GST-compliant invoicing, expense tracking, and tax-ready reporting for Indian freelancers.
Invoicely helps freelancers and small businesses in India create professional GST invoices, track expenses, and generate everything their CA needs at tax time — all in one place.
- Google OAuth Login — No passwords to manage, sign in with your Google account
- GST-Compliant Invoicing — Auto-calculates CGST/SGST (intra-state) or IGST (inter-state) based on seller/buyer states
- Professional PDF Invoices — Download GST-compliant invoices with tax breakup, SAC codes, and all mandatory fields
- Client Management — Store client details (GSTIN, state, address) for quick invoice creation
- Expense Tracking — Log business expenses by category with optional receipt uploads
- Reports & Exports
- GST Summary (Excel) — Monthly/quarterly tax breakdown for GSTR-1 filing
- Income Report (Excel) — Client-wise income breakdown
- Expense Report (Excel) — Category-wise expense breakdown
- CA Export Pack (ZIP) — All reports + invoice PDFs + receipts in one download
- Dashboard — Monthly income, expenses, profit, GST collected, and invoice status at a glance
- Auto Invoice Numbering — Sequential per-year format:
INV-2026-001 - Overdue Detection — Scheduled job auto-marks unpaid invoices past due date
| Layer | Technology |
|---|---|
| Language | Java 21 |
| Framework | Spring Boot 3.5 |
| Build | Maven |
| Database | PostgreSQL |
| ORM | Spring Data JPA / Hibernate |
| Auth | Spring Security + Google OAuth2 |
| Frontend | Thymeleaf + Bootstrap 5 |
| PDF Generation | OpenPDF |
| Excel Export | Apache POI |
| Testing | JUnit 5 + Mockito + H2 (in-memory) |
| Deployment | Docker + Render (free tier) |
| CI/CD | GitHub Actions |
src/main/java/com/invoicely/
├── config/ # Security & app configuration
├── controller/ # MVC controllers (Dashboard, Invoice, Client, Expense, Report)
├── dto/ # Data transfer objects
├── model/ # JPA entities (User, Client, Invoice, LineItem, Expense)
│ └── enums/ # InvoiceStatus, ExpenseCategory, GstType
├── repository/ # Spring Data JPA repositories
└── service/ # Business logic
├── GstCalculationService # CGST/SGST/IGST determination
├── PdfGenerationService # Invoice PDF creation
├── ReportService # Excel report generation
└── ExportService # CA ZIP pack assembly
| Scenario | Tax Applied |
|---|---|
| Seller & buyer in same state | CGST (9%) + SGST (9%) |
| Seller & buyer in different states | IGST (18%) |
| Custom rate (5%, 12%, 28%) | Configurable per invoice |
- Java 21+
- Maven 3.9+
- PostgreSQL 15+ (or Docker)
-
Start PostgreSQL:
docker run -d --name invoicely-db \ -e POSTGRES_DB=invoicely \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgres \ -p 5432:5432 postgres:15-alpine
-
Create
src/main/resources/application-dev.yml(gitignored):spring: datasource: url: jdbc:postgresql://localhost:5432/invoicely username: postgres password: postgres jpa: hibernate: ddl-auto: update show-sql: true sql: init: mode: never security: oauth2: client: registration: google: client-id: YOUR_GOOGLE_CLIENT_ID client-secret: YOUR_GOOGLE_CLIENT_SECRET scope: openid, profile, email
-
Run the app:
mvn spring-boot:run -DskipTests -s .mvn/local-settings.xml -Dspring-boot.run.profiles=dev
-
Open: http://localhost:9080
- Go to Google Cloud Console
- Create an OAuth 2.0 Client ID (Web application)
- Add authorized redirect URI:
http://localhost:9080/login/oauth2/code/google - Copy the client ID and secret to your
application-dev.yml
mvn test -s .mvn/local-settings.xmlTests use H2 in-memory database — no external dependencies needed.
This project includes a render.yaml blueprint for one-click deployment:
- Push code to GitHub
- Go to render.com → "New" → "Blueprint"
- Connect your repo — Render auto-provisions PostgreSQL + web service
- Set environment variables:
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET - Add your Render URL to Google OAuth authorized redirect URIs:
https://your-app.onrender.com/login/oauth2/code/google
The free tier sleeps after 15 minutes of inactivity (first request after sleep takes ~30s).
TODO: Add screenshots of dashboard, invoice creation, and PDF output
MIT
