TuniBalance is a comprehensive financial management system designed to help businesses track transactions, manage revenues, generate financial reports, and analyze financial performance.
- Overview
- Features
- Tech Stack
- Project Structure
- Installation
- Usage
- API Documentation
- AI Prediction Service
- Contributing
- Keywords
- License
TuniBalance is a full-stack application that provides businesses with tools to manage their financial operations efficiently. The application includes features for transaction management, revenue tracking, invoice management, financial reporting, and user management with different roles and permissions.
-
User Management
- Authentication and authorization
- Different user roles (admin, business owner, comptable)
- Profile management
- Friend requests and messaging
-
Transaction Management
- Create, view, and filter financial transactions
- Track expenses and income
- Categorize transactions
-
Revenue Tracking
- Visualize revenue over time periods
- Generate revenue reports
- Analyze revenue trends
-
Financial Reporting
- Generate income statements
- Balance sheets
- Financial KPIs and metrics
-
Invoice Management
- Create and manage invoices for clients
- Track invoice status and payments
- Generate PDF invoices
-
Calendar and Appointments
- Schedule and manage appointments
- Business calendar
-
AI Predictions
- Predict future financial trends
- Risk analysis
- Financial recommendations
- React 19
- Vite
- Redux Toolkit for state management
- Redux Persist for local storage
- React Router for navigation
- Tailwind CSS for styling
- Chart.js and Recharts for data visualization
- Axios for API requests
- Socket.io for real-time features
- NestJS framework
- MongoDB with Mongoose
- JWT for authentication
- WebSockets for real-time communication
- PDF generation with PDFKit
- Excel export with ExcelJS
- Email notifications
- Python
- TensorFlow/scikit-learn for machine learning models
- Flask API for predictions
TuniBalance/
├── client/ # Frontend React application
│ ├── public/ # Static assets
│ ├── src/ # Source code
│ │ ├── components/ # Reusable components
│ │ ├── layouts/ # Layout components
│ │ ├── pages/ # Page components
│ │ ├── redux/ # Redux store and slices
│ │ ├── routes/ # Route components
│ │ ├── services/ # API services
│ │ └── utils/ # Utility functions
│ ├── package.json # Frontend dependencies
│ └── vite.config.js # Vite configuration
│
├── server/ # Backend NestJS application
│ ├── src/ # Source code
│ │ ├── auth/ # Authentication module
│ │ ├── facture/ # Invoice module
│ │ ├── journal/ # Journal module
│ │ ├── transactions/ # Transactions module
│ │ ├── user/ # User module
│ │ └── main.ts # Application entry point
│ ├── package.json # Backend dependencies
│ └── nest-cli.json # NestJS configuration
│
├── Dockerfile # Docker configuration
├── Jenkinsfile # Jenkins CI/CD pipeline
└── README.md # Project documentation
- Node.js (v18 or higher)
- npm or yarn
- MongoDB
- Python 3.8+ (for AI prediction service)
# Navigate to client directory
cd client
# Install dependencies
npm install
# Start development server
npm run dev# Navigate to server directory
cd server
# Install dependencies
npm install
# Start development server
npm run start:dev# Build and run with Docker
docker-compose up --build-
Admin
- Manage users
- View business owners
- System configuration
-
Business Owner
- Dashboard with financial overview
- Manage transactions and invoices
- View financial reports
- Schedule appointments
-
Comptable (Accountant)
- Manage transactions
- Generate financial reports
- Track revenue and expenses
-
Transaction Management
- Create new transactions
- Filter and search transactions
- View transaction details
-
Revenue Tracking
- Select date range for revenue analysis
- View revenue charts and statistics
- Export revenue reports
-
Financial Reporting
- Generate income statements
- View balance sheets
- Analyze financial KPIs
The backend API provides endpoints for all application features. Key endpoints include:
/auth- Authentication endpoints/users- User management/transactions- Transaction management/facture- Invoice management/journal- Journal entries/bilan- Balance sheet
For detailed API documentation, run the server and visit /api-docs.
TuniBalance includes an AI prediction service that provides financial forecasting and recommendations:
- Prediction of future revenue and expenses
- Risk analysis for financial decisions
- Personalized financial recommendations
To use the AI service, start the Python API:
# Windows
start_api.bat
# Linux/Mac
chmod +x start_api.sh
./start_api.shContributions are welcome! Please feel free to submit a Pull Request.
TuniBalance incorporates the following key technologies and concepts:
- Financial Management System - Complete solution for business financial operations
- Accounting Software - Track transactions, generate reports, and manage invoices
- Business Intelligence - Data visualization and financial analytics
- MERN Stack - MongoDB, Express (NestJS), React, Node.js
- Machine Learning Finance - AI-powered financial predictions and recommendations
- Financial Dashboard - Interactive visualization of financial data
- Invoice Management System - Create, track, and manage client invoices
- Financial Reporting Tool - Generate income statements and balance sheets
- User Role Management - Admin, business owner, and accountant access levels
- Real-time Financial Updates - WebSocket integration for live data
- Responsive Financial Application - Works on desktop and mobile devices
- Secure Authentication - JWT-based user authentication and authorization
- Financial Data Export - PDF and Excel export capabilities
- Appointment Scheduling - Business calendar management
- Docker Containerization - Easy deployment with Docker
- CI/CD Pipeline - Continuous integration with Jenkins
This project is licensed under the MIT License.
