A secure corporate payroll management system built with Spring Boot that allows companies to manage employee payrolls through a web portal instead of email.
This service provides a secure way for companies to manage employee payroll information through a web interface instead of using corporate email. It features:
-
👤 User Authentication & Authorization
- Secure signup and login
- Role-based access control (RBCO)
- Password security policies
- Account locking mechanism
-
💰 Payroll Management
- Upload employee payrolls
- View payment history
- Track salary information
-
👮 Administrative Controls
- User management
- Role management
- Access control
- Security audit logging
- Java 17
- Spring Boot
- Spring Security
- Spring Data JPA
- H2 Database
- Gradle
- Lombok
- Password validation
- Breached password protection
- HTTPS/TLS support
- Basic authentication
- Role-based authorization
- Security event logging
POST /api/auth/signup
- Register new usersPOST /api/auth/changepass
- Change user password
GET /api/empl/payment
- View employee payroll informationPOST /api/acct/payments
- Upload payroll informationPUT /api/acct/payments
- Updates payroll information
GET /api/admin/user
- List all usersDELETE /api/admin/user
- Delete usersPUT /api/admin/user/role
- Modify user rolesPUT /api/admin/user/access
- Lock/unlock user accounts
- Clone the repository
git clone <repository-url>
- Build the project
./gradlew build
- Run the application
./gradlew bootRun
The service will be available at http://localhost:8080
- Passwords must be at least 12 characters long
- Passwords cannot be found in the breached password database
- New passwords must be different from old passwords
- Accounts are locked after suspicious activities
Contributions are welcome! Please feel free to submit a Pull Request.
Project completed as part of the JetBrains Academy Java Backend Developer track