Skip to content

per5ect/JobFinder-Backend

Repository files navigation

JobFinder Back-End

GitHub repo size GitHub stars

Software Requirements Specification (SRS): https://github.com/per5ect/JobFinder-Backend/blob/main/SRS%20JobFinder.pdf

Software Design Document (SDD): https://github.com/per5ect/JobFinder-Backend/blob/main/SDD%20Jobfinder.pdf

Figma design: https://www.figma.com/design/CLQlBV5p9wejuXqliZ6CZE/JobFinder?node-id=0-1&t=nKr3H12D26vQ6Lv6-1

Description

JobFinder Backend is the server-side component for the JobFinder web application, built with Java Spring Boot.
It provides RESTful APIs for job search, user authentication, and document management, integrating with Apache PDFBox for parsing PDFs, Gemini API for advanced document processing, and Cloudinary API for image and file storage.

Features

  • 🔒 User authentication and authorization
  • 💼 Job posting and search APIs
  • 📝 Resume/document upload and parsing (PDF support via Apache PDFBox)
  • 🤖 Gemini API integration for document analysis
  • ☁️ Cloudinary API for file and image uploads
  • 📄 CRUD operations for jobs and users
  • 📊 Robust error handling and logging

Technologies Used

Usage

  • Open application in your browser.
  • Use the search bar to find jobs by keyword or location.
  • Apply filters to narrow down results.
  • Click on job listings to view detailed information.
  • Analyzing a resume
  • Obtaining suitable vacancies after analysis
  • Creation of vacancies by the firm
  • Administering the application by admin
image image image image image image

Project Structure

Directory structure:
└── per5ect-jobfinder-backend/
    ├── mvnw
    ├── mvnw.cmd
    ├── pom.xml
    ├── src/
    │   ├── main/
    │   │   ├── java/
    │   │   │   └── com/
    │   │   │       └── jobfinder/
    │   │   │           └── backend/
    │   │   │               └── jobfinderbackend/
    │   │   │                   ├── JobFinderBackendApplication.java
    │   │   │                   ├── config/
    │   │   │                   │   ├── AdminConfiguration.java
    │   │   │                   │   ├── ApplicationConfiguration.java
    │   │   │                   │   ├── CloudinaryConfiguration.java
    │   │   │                   │   ├── EmailConfiguration.java
    │   │   │                   │   ├── JWTAuthenticationFilter.java
    │   │   │                   │   ├── RoleSeederConfiguration.java
    │   │   │                   │   └── SecurityConfiguration.java
    │   │   │                   ├── controllers/
    │   │   │                   │   ├── AdminController.java
    │   │   │                   │   ├── CompanyAuthenticationController.java
    │   │   │                   │   ├── CompanyController.java
    │   │   │                   │   ├── PublicController.java
    │   │   │                   │   ├── UserAuthenticationController.java
    │   │   │                   │   └── UserController.java
    │   │   │                   ├── dto/
    │   │   │                   │   ├── CompanyDetailsDTO.java
    │   │   │                   │   ├── CreateTechnologyDTO.java
    │   │   │                   │   ├── CreateVacancyDTO.java
    │   │   │                   │   ├── LoginCompanyDTO.java
    │   │   │                   │   ├── LoginResponseDTO.java
    │   │   │                   │   ├── LoginUserDTO.java
    │   │   │                   │   ├── RegisterCompanyDTO.java
    │   │   │                   │   ├── RegisterUserDTO.java
    │   │   │                   │   ├── ResponsesToVacancyDTO.java
    │   │   │                   │   ├── ResumeAnalysisResponseDTO.java
    │   │   │                   │   ├── TechnologyDTO.java
    │   │   │                   │   ├── UserApplicationsDTO.java
    │   │   │                   │   ├── UserCoverLetterDTO.java
    │   │   │                   │   ├── UserDetailsDTO.java
    │   │   │                   │   ├── VacancyDetailsDTO.java
    │   │   │                   │   ├── VacancyFilterCriteriaDTO.java
    │   │   │                   │   ├── VerifyCompanyDTO.java
    │   │   │                   │   └── VerifyUserDTO.java
    │   │   │                   ├── models/
    │   │   │                   │   ├── ApplicationStatusEnum.java
    │   │   │                   │   ├── Company.java
    │   │   │                   │   ├── Resume.java
    │   │   │                   │   ├── Role.java
    │   │   │                   │   ├── RoleEnum.java
    │   │   │                   │   ├── Technology.java
    │   │   │                   │   ├── User.java
    │   │   │                   │   ├── UserFavoriteVacancy.java
    │   │   │                   │   ├── Vacancy.java
    │   │   │                   │   └── VacancyApplications.java
    │   │   │                   ├── repository/
    │   │   │                   │   ├── CompanyRepository.java
    │   │   │                   │   ├── ResumeRepository.java
    │   │   │                   │   ├── RoleRepository.java
    │   │   │                   │   ├── TechnologyRepository.java
    │   │   │                   │   ├── UserFavoriteVacancyRepository.java
    │   │   │                   │   ├── UserRepository.java
    │   │   │                   │   ├── VacancyApplicationsRepository.java
    │   │   │                   │   └── VacancyRepository.java
    │   │   │                   ├── services/
    │   │   │                   │   ├── AdminService.java
    │   │   │                   │   ├── CompanyAuthenticationService.java
    │   │   │                   │   ├── CompanyService.java
    │   │   │                   │   ├── EmailService.java
    │   │   │                   │   ├── JWTService.java
    │   │   │                   │   ├── ResumeAnalysisService.java
    │   │   │                   │   ├── ResumeService.java
    │   │   │                   │   ├── TechnologyService.java
    │   │   │                   │   ├── UserAuthenticationService.java
    │   │   │                   │   ├── UserService.java
    │   │   │                   │   ├── VacancyApplicationsService.java
    │   │   │                   │   ├── VacancyFilterService.java
    │   │   │                   │   ├── VacancyMatchingService.java
    │   │   │                   │   └── VacancyService.java
    │   │   │                   └── utils/
    │   │   │                       ├── GeminiClient.java
    │   │   │                       └── ResumeParser.java
    │   │   └── resources/
    │   │       └── application.properties
    │   └── test/
    │       └── java/
    │           └── com/
    │               └── jobfinder/
    │                   └── backend/
    │                       └── jobfinderbackend/
    │                           └── JobFinderBackendApplicationTests.java
    └── .mvn/
        └── wrapper/
            └── maven-wrapper.properties


Languages