This is the backend of a role-based ERP (Enterprise Resource Planning) system developed using Spring Boot and MySQL. The system supports modules like Admin, HR, Finance, and Inventory, with secure JWT authentication and role-based access control.
- JWT-based login and signup
- Role-based access control (Admin, HR, Finance, Inventory)
- Password encryption using Spring Security
- Create/Edit/Delete users
- Assign roles (HR, Finance, Inventory)
- Activate/Deactivate users
- Reset user passwords
- View user roles and permissions
- Create/Edit/Delete departments
- Assign users to departments
- Department-wise user listing
- Employee CRUD operations
- Leave Management (Request/Approve/Reject)
- Attendance Management with enum statuses:
- PRESENT
- ABSENT
- LEAVE
- NOT_MARKED
- Auto-leave attendance update
- Employee performance and payroll management
- Product stock management
- Purchase order tracking
- Salary and payroll processing
- Financial reporting (planned)
- Java 17+
- Spring Boot
- Spring Security
- Spring Data JPA
- MySQL
- JWT (Authentication)
- Lombok
- Maven
src/ ├── config/ → Security & JWT configuration ├── controller/ → REST API controllers ├── dto/ → Data Transfer Objects ├── entity/ → JPA Entities ├── repository/ → Spring Data Repositories ├── request/ → Incoming request models ├── response/ → API responses ├── service/ → Business logic └── service/impl/ → Service implementations
- Java 17+
- MySQL
- Maven
- Clone the repo:
git clone https://github.com/swapnilshinde1101/ERP.git
2. Create a MySQL database:
CREATE DATABASE erp_system;
3. Configure DB credentials in application.properties.
4. Run the Spring Boot application:
mvn spring-boot:run