Mini ERP Invoicing System
A full-stack invoicing and customer management system built with Next.js, NestJS, Prisma, and PostgreSQL. The system includes JWT authentication, customer management, invoice creation with multiple items, invoice status tracking, dashboard analytics, IDR currency formatting, revenue trend visualization, invoice status chart, top customers table, recent invoices, and Swagger API documentation.

Problem
Small business invoicing needs structured customer data, invoice status tracking, and financial summaries without manual spreadsheets.
Solution
Built a full-stack Mini ERP with JWT authentication, REST API, invoice/customer modules, dashboard analytics, charts, tables, and Swagger API documentation.
My Role
Full Stack Developer responsible for frontend, backend API, database modeling, authentication, dashboard analytics, and deployment.
Technical Architecture
Next.js frontend communicates with a NestJS REST API using Prisma and PostgreSQL.
Result
Shows a deployed full-stack ERP workflow with clear invoice lifecycle, financial dashboard, and production-ready REST API documentation.
Status
Deployment under maintenance
Key Features
- Login authentication
- Customer management
- Invoice creation with multiple items
- Invoice status management: Draft, Sent, Paid, Cancelled, Overdue
- Dashboard summary
- Revenue trend chart
- Invoice status chart
- Top customers table
- Recent invoices table
- IDR currency format
- Swagger API documentation
Engineering Challenges
- Modeling invoices with multiple items
- Presenting invoice status and financial summaries clearly
Technical Decisions
- Next.js frontend communicates with a NestJS REST API using Prisma and PostgreSQL.
Tech Stack
- Next.js
- NestJS
- Prisma
- PostgreSQL
- TailwindCSS
- JWT
- REST API
- Swagger
- Vercel