A modern accounting web application focused on Mauritius businesses, featuring expense tracking, VAT handling, and bank data ingestion.
-
User Authentication
- JWT-based login system
- Role-based access (admin/accountant)
-
Invoice Processing
- OCR-based invoice scanning
- Automatic VAT detection and calculation
- Vendor information extraction
-
CSV Data Import
- Bulk transaction import
- Automatic categorization
- Data validation
-
Bank Statement Processing
- PDF statement parsing
- Balance tracking
- Transaction categorization
-
Accounting Dashboard
- Profit & Loss tracking
- VAT liability monitoring
- Bank balance overview
- Vue.js 3
- Vite
- Tailwind CSS
- Node.js
- Express.js
- MongoDB
- Tesseract.js (OCR)
- pdf-parse (PDF processing)
- papaparse (CSV handling)
novafi/
├── frontend/ # Vue.js frontend application
├── backend/ # Node.js/Express backend
├── docs/ # Documentation
└── README.md # Project documentation
- Node.js (v16+)
- MongoDB
- npm or yarn
- Clone the repository
git clone https://github.com/yourusername/novafi.git
cd novafi
- Install backend dependencies
cd backend
npm install
- Install frontend dependencies
cd ../frontend
npm install
- Set up environment variables
cp .env.example .env
- Start the development servers
# Backend
cd backend
npm run dev
# Frontend
cd frontend
npm run dev
- JWT tokens stored in HTTP-only cookies
- Rate limiting implemented for file uploads
- Input validation and sanitization
- Role-based access control
MIT License
To restart both the frontend and backend applications:
-
Run the restart script using Node.js:
node restart.js
-
Alternatively, on Windows, you can use the batch file:
restart.bat
This will:
- Terminate any running processes on ports 5173 (frontend) and 3000 (backend)
- Restart the backend first, then the frontend
- Display output from both applications in the terminal
If you need to customize the ports, edit the restart.js
file.