Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ayoubaitelmaalem/inspairxjob

Repository files navigation

CleanJob Platform - Backend

A comprehensive recruitment platform backend built with Spring Boot, featuring job management, user management, event organization, and workshop management.

πŸš€ Features

Core Functionality

  • 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

User Roles

  • 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

πŸ› οΈ Technology Stack

  • 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

πŸ“‹ Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • MySQL 8.0+
  • IDE (IntelliJ IDEA, Eclipse, or VS Code)

πŸš€ Quick Start

1. Database Setup

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;

2. Configuration

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

3. Build and Run

# Clone the repository
git clone <repository-url>
cd cleanJob_mono

# Build the project
mvn clean install

# Run the application
mvn spring-boot:run

The application will start on http://localhost:8080/api

πŸ“š API Endpoints

Authentication

  • POST /api/auth/login - User login
  • POST /api/auth/register - User registration

User Management

  • GET /api/users - Get all active users
  • GET /api/users/{id} - Get user by ID
  • POST /api/users - Create new user
  • PUT /api/users/{id} - Update user
  • DELETE /api/users/{id} - Delete user

Job Management

  • GET /api/jobs - Get all active jobs
  • GET /api/jobs/{id} - Get job by ID
  • POST /api/jobs/company/{companyId} - Create job for company
  • PUT /api/jobs/{id} - Update job
  • DELETE /api/jobs/{id} - Delete job
  • GET /api/jobs/search - Search jobs by location/title
  • GET /api/jobs/skills - Find jobs by required skills

Application Management

  • GET /api/applications - Get applications
  • POST /api/applications - Submit job application
  • PUT /api/applications/{id}/status - Update application status
  • GET /api/applications/candidate/{candidateId} - Get candidate applications
  • GET /api/applications/company/{companyId} - Get company applications

Event Management

  • GET /api/events - Get all events
  • POST /api/events - Create event
  • GET /api/events/upcoming - Get upcoming events

Workshop Management

  • GET /api/workshops - Get all workshops
  • POST /api/workshops - Create workshop
  • GET /api/workshops/expert/{expertId} - Get expert workshops

πŸ—„οΈ Database Schema

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

πŸ” Security

  • 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

πŸ“± QR Code Features

The platform includes QR code generation for:

  • Event registration verification
  • Candidate profile access
  • Workshop attendance tracking

πŸš€ Deployment

Docker Deployment

# Build Docker image
docker build -t cleanjob-backend .

# Run container
docker run -p 8080:8080 cleanjob-backend

Production Considerations

  • Use strong JWT secrets
  • Configure proper database connection pooling
  • Set up monitoring and logging
  • Configure HTTPS
  • Use environment variables for sensitive data

πŸ§ͺ Testing

# Run tests
mvn test

# Run with coverage
mvn jacoco:report

πŸ“Š Monitoring

The application includes:

  • Spring Boot Actuator endpoints
  • Database connection monitoring
  • Request/response logging
  • Performance metrics

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

For support and questions:

  • Create an issue in the repository
  • Contact the development team
  • Check the documentation

πŸ”„ Version History

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published