Enterprise-ready invoice management system, designed for extreme scale: supports up to 999,999,999,999 invoices per year, full audit trail, strong security, and a modern UI.
- Overview
- Key Features
- Tech Stack
- Prerequisites
- Quick Installation
- Configuration
- Development
- API Documentation
- Billion-Scale System
- Authentication & Security
- Recent Updates
- Roadmap
- Contributing
- License
- Support
Invoice Manager is a comprehensive platform built for rigorous enterprise environments.
Highlights:
- Massive scale: up to 999,999,999,999 invoices/year (no confusion with 1 billion)
- Security: JWT HttpOnly, complete audit trail, granular roles
- Modern UX: React + Tailwind, real-time validation, responsive UI
- Advanced export: PDF and Excel with full history tracking
- Workflow: Invoice and supplier CRUD, DFC validation process
- Fiscal year management: automatic switching and planning up to two years in advance
- Optimized ID format:
INV-000000000001(12 sequential digits) - High performance: indexed with a dedicated
BIGINTcounter - Duplicate prevention: verified IDs and automatic synchronization
- JWT HttpOnly cookies (XSS mitigation)
- Dynamic session handling (backend-managed "remember me")
- Role-based access: admin, invoice manager, DFC agent
- Complete activity trail for all actions
- Bcrypt password hashing and robust validation
- Full CRUD with advanced validation
- Multi-criteria search by supplier
- DFC workflow (approve/reject with comments)
- Intelligent sequential numbering
- Account number: all valid formats accepted (not limited to 12 digits)
- Conflict validation (account/supplier/phone)
- Flexible, multi-criteria search
- Modern, dynamic user interface
- PDF and Excel export only (TXT format is not supported)
- Advanced time filtering
- Complete export history
React 18 + Vite
βββ UI: Tailwind CSS + Heroicons
βββ Forms: React Hook Form + Zod
βββ State: React Context + Hooks
βββ Routing: React Router
βββ Build: Vite (HMR, optimization)
Node.js + Express + TypeScript
βββ Auth: JWT HttpOnly + bcrypt
βββ DB: MySQL 8.2 (Docker)
βββ Validation: Custom
βββ Logging: Custom logger
βββ Audit: full activity traceability
βββ API: RESTful + Express Router
MySQL 8.2 via Docker
βββ Tables: invoice, supplier, employee, audit_log
βββ Optimized indexing
βββ Foreign and unique constraints
βββ Partitioning ready
- Node.js 18+ and npm 9+
- MySQL 8.2 (via Docker)
- Modern web browser (Chrome 90+, Firefox 88+)
- Docker + Docker Compose
# Clone repository
git clone https://github.com/Dioman-Keita/invoice-app.git
cd invoice-app
# Install dependencies
npm install
cd server && npm install && cd ..
cd client && npm install && cd ..The Docker initialization scripts (
server/manage-task.shorserver/manage-task.bash) perform a full Docker engine reset:
This means they do not just delete containers/images related to invoice-app, but can also reset your entire Docker setup (removing all containers/images locally).
Use with caution if you run other Docker projects on your machine.
Create server/.env with:
# Authentication
JWT_SECRET_KEY=super_secret_key_change_me
# Environment
NODE_ENV=development
PORT=3000
FRONTEND_URL=http://localhost:5173
# MySQL Database
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=cmdt_invoice_dbJWT expiration is backend-managed and dynamic; no need to define it in
.env.
# Start frontend:
cd invoice-app
npm run dev
# Start backend:
cd server
npm run devDefault URLs:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- POST /auth/login
- POST /auth/register
- POST /auth/forgot-password
- POST /auth/reset-password
- POST /auth/silent-refresh
- GET /auth/status
- GET /auth/profile
- POST /auth/logout
- POST /auth/admin/create-user
- Full CRUD (GET, POST, update, delete)
- DFC workflow: approve/reject, comments
- Multi-criteria search
- CRUD, advanced search, conflict validation
- PDF, Excel (TXT not supported)
- Export history tracking
- Extreme capacity: up to 999,999,999,999 invoices/year
- Invoice ID:
INV-000000000001(12 digits) - BIGINT counter for high performance & atomicity
- Sequence indexing, no
SELECT MAX(), duplication prevention
- JWT & HttpOnly cookies, CSRF & XSS protection
- Role-Based Access: admin / invoice manager / DFC agent
- Full audit trail: all actions logged
- Export & operation tracking
- Docker + MySQL 8.2 migration
- Strict TypeScript backend
- Enhanced PDF and Excel exports
- Updated Docker init scripts
- Performance and bug fixes
- Billion-scale architecture
- Modernized export system
- Enhanced audit logging
- Complete TypeScript coverage
- Responsive UX improvements
- Real-time notifications (WebSocket)
- Advanced analytics (dashboard)
- Bulk operations
- API rate limiting
- Integration tests
- Microservices (invoice & auth separation)
- Background queue system
- Mobile app (React Native)
- Multi-tenant support
- AI features (duplicate detection, OCR etc.)
- Fork the repository
- Create a branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add feature') - Push to your branch (
git push origin feature/my-feature) - Open a Pull Request
MIT License β see LICENSE
- Email: [email protected]
This solution is provided with a focus on robustness and high-volume performance for enterprise invoice management.
Last updated: November 2025