Aakar ERP is a full-stack enterprise resource planning (ERP) web application designed for managing employees, projects, departments, skills/training, and a ticketing/helpdesk system. It provides a modern, modular platform for HR, project management, IT support, and training workflows within an organization.
- User Authentication & Role Management: Secure login with JWT, user roles, and access control.
- Employee Management: Add, edit, import (via Excel), and view employees, including department/designation mapping.
- Department & Designation Management: CRUD operations for departments and job titles.
- Project Management: Create, update, and track projects with stages, substages, and Gantt charts.
- Skill & Training Management: Define skills, assign to employees, manage training sessions, and track participation.
- Ticketing/Helpdesk System: Raise, assign, and resolve support tickets with attachments, status tracking, and email notifications.
- Admin/Manager Dashboards: Special views for managing users, projects, tickets, and training.
- Frontend: React, Redux Toolkit, Material UI, Vite, Axios
- Backend: Node.js, Express, MySQL/MariaDB, JWT, Multer, Nodemailer
- Database: MySQL/MariaDB (see
aakarerp.sqlfor schema and sample data) - Other Tools: phpMyAdmin (optional, for DB management), bcrypt (password hashing)
Aakar_final/
├── backend/ # Node.js/Express backend (API, DB, business logic)
│ ├── controllers/ # Route controllers (auth, employee, project, etc.)
│ ├── db/ # Database connection
│ ├── email/ # Email templates and assets
│ ├── middleware/ # Express middleware (auth, etc.)
│ ├── routes/ # API route definitions
│ ├── ticketRoutes/ # Ticketing system routes
│ ├── uploads/ # Uploaded files (Excel, PDFs, etc.)
│ ├── utils/ # Utility functions (error, response, multer, etc.)
│ ├── validators/ # Input validation
│ ├── index.js # Backend entry point
│ └── ...
├── frontend/ # React frontend (UI, state, assets)
│ ├── public/ # Static assets
│ ├── src/ # Source code
│ │ ├── api/ # Axios instance
│ │ ├── components/ # Reusable UI components
│ │ ├── features/ # Redux slices
│ │ ├── pages/ # Page components (Login, Dashboard, etc.)
│ │ ├── store/ # Redux store
│ │ ├── ticketComponents/ # Ticketing UI
│ │ └── ...
│ ├── package.json # Frontend dependencies
│ └── ...
├── aakarerp.sql # MySQL database schema and sample data
├── AakarEmployeeImport.xlsx # Sample Excel for employee import
├── package.json # Project-level dependencies
└── README.md # Project documentation
- On Arch Linux:
sudo pacman -S mariadb sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql sudo systemctl enable --now mariadb - Secure your installation (optional but recommended):
sudo mysql_secure_installation
- On Arch Linux:
sudo pacman -S apache php php-apache phpmyadmin
- Edit
/etc/httpd/conf/httpd.confand add:Include conf/extra/phpmyadmin.conf - Restart Apache:
sudo systemctl restart httpd
- Open your browser and go to http://localhost/phpmyadmin
- Log in with your MySQL/MariaDB credentials (often
root) - Create a new database (e.g.,
aakarerp) - Select the new database, go to the Import tab
- Choose the
aakarerp.sqlfile from the project root and click Go
Alternatively, you can import via terminal:
mysql -u <username> -p aakarerp < /path/to/aakarerp.sql- Go to the backend directory:
cd backend - Install dependencies:
npm install
- Copy
.env_exampleto.envand fill in your configuration:cp .env_example .env
- Set your database connection string, JWT secrets, and email credentials in
.env. - Example for local MariaDB:
DB_CONNECTION_STRING=mysql://root:<your_password>@localhost:3306/aakarerp JWT_ACCESS_SECRET=your_access_secret JWT_REFRESH_SECRET=your_refresh_secret # ...other settings as needed
- Set your database connection string, JWT secrets, and email credentials in
- Start the backend server:
npm run dev
- Go to the frontend directory:
cd ../frontend - Install dependencies:
npm install
- Start the frontend dev server:
npm run dev
- The app will be available at http://localhost:5173 (or as shown in your terminal)
- You can log in with the following default admin credentials:
- Email:
admin@gmail.com - Password:
admin
- Email: