A comprehensive recruitment platform backend built with Spring Boot, featuring job management, user management, event organization, and workshop management.
- User Management: Multi-role user system (Admin, Company, Expert, Candidate, Student)
- Job Management: Job posting, application tracking, and candidate management
- Event Management: Event creation, registration, and QR code generation
- Workshop Management: Expert-led workshops with certification
- Application Tracking: Complete job application lifecycle management
- Premium Subscriptions: Subscription-based premium features
- Admin: Platform administration and user validation
- Company: Job posting and candidate management
- Expert: Workshop creation and consultation services
- Candidate: Job application and profile management
- Student: Event registration and workshop participation
- Framework: Spring Boot 3.5.4
- Database: MySQL 8.0
- Security: Spring Security with JWT
- ORM: Spring Data JPA with Hibernate
- Build Tool: Maven
- Java Version: 17
- Additional Libraries:
- Lombok for boilerplate reduction
- ZXing for QR code generation
- JWT for authentication
- Java 17 or higher
- Maven 3.6+
- MySQL 8.0+
- IDE (IntelliJ IDEA, Eclipse, or VS Code)
Create a MySQL database:
CREATE DATABASE cleanjob_db;
CREATE USER 'cleanjob_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON cleanjob_db.* TO 'cleanjob_user'@'localhost';
FLUSH PRIVILEGES;Update src/main/resources/application.properties:
# Database Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/cleanjob_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=cleanjob_user
spring.datasource.password=your_password
# JWT Configuration
jwt.secret=your-secret-key-here-make-it-very-long-and-secure-in-production
# Email Configuration (optional)
spring.mail.host=smtp.gmail.com
spring.mail.username[email protected]
spring.mail.password=your-app-password# Clone the repository
git clone <repository-url>
cd cleanJob_mono
# Build the project
mvn clean install
# Run the application
mvn spring-boot:runThe application will start on http://localhost:8080/api
POST /api/auth/login- User loginPOST /api/auth/register- User registration
GET /api/users- Get all active usersGET /api/users/{id}- Get user by IDPOST /api/users- Create new userPUT /api/users/{id}- Update userDELETE /api/users/{id}- Delete user
GET /api/jobs- Get all active jobsGET /api/jobs/{id}- Get job by IDPOST /api/jobs/company/{companyId}- Create job for companyPUT /api/jobs/{id}- Update jobDELETE /api/jobs/{id}- Delete jobGET /api/jobs/search- Search jobs by location/titleGET /api/jobs/skills- Find jobs by required skills
GET /api/applications- Get applicationsPOST /api/applications- Submit job applicationPUT /api/applications/{id}/status- Update application statusGET /api/applications/candidate/{candidateId}- Get candidate applicationsGET /api/applications/company/{companyId}- Get company applications
GET /api/events- Get all eventsPOST /api/events- Create eventGET /api/events/upcoming- Get upcoming events
GET /api/workshops- Get all workshopsPOST /api/workshops- Create workshopGET /api/workshops/expert/{expertId}- Get expert workshops
The application uses the following main entities:
- User: Base user entity with role-based access
- Company: Company profiles and job postings
- Job: Job offers with requirements and details
- Candidate: Job seekers with CVs and skills
- Application: Job applications with status tracking
- Event: Events and networking opportunities
- Workshop: Expert-led training sessions
- Expert: Professional consultants and trainers
- Student: Event and workshop participants
- Authentication: JWT-based token authentication
- Authorization: Role-based access control (RBAC)
- Password Security: BCrypt password hashing
- CORS: Configured for cross-origin requests
- Input Validation: Request parameter validation
The platform includes QR code generation for:
- Event registration verification
- Candidate profile access
- Workshop attendance tracking
# Build Docker image
docker build -t cleanjob-backend .
# Run container
docker run -p 8080:8080 cleanjob-backend- Use strong JWT secrets
- Configure proper database connection pooling
- Set up monitoring and logging
- Configure HTTPS
- Use environment variables for sensitive data
# Run tests
mvn test
# Run with coverage
mvn jacoco:reportThe application includes:
- Spring Boot Actuator endpoints
- Database connection monitoring
- Request/response logging
- Performance metrics
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation
- v1.0.0: Initial release with core functionality
- v1.1.0: Added QR code generation and event management
- v1.2.0: Enhanced security and user management features
Note: This is a backend application. For the complete platform, you'll need to integrate with a frontend application.