Skip to content
AyodhyaPrasad edited this page Nov 5, 2024 · 3 revisions

Welcome to the Job Portal Web App Wiki!

This wiki provides comprehensive documentation on the Job Portal Web App, a Spring Boot project designed to connect recruiters and job seekers. Here, you’ll find detailed instructions on project setup, architecture, key features, and troubleshooting tips.


Table of Contents

  1. Overview
  2. Getting Started o Prerequisites o Installation
  3. Application Architecture
  4. Feature Details o Recruiter Features o Job Candidate Features o Common Features
  5. Database Schema
  6. Development Roadmap
  7. Troubleshooting
  8. Contributing

Overview The Job Portal Web App is a full-stack Java application using Spring Boot for backend logic, Thymeleaf for frontend templates, and MySQL as the database. This application serves as a bridge between recruiters and job seekers, providing an interactive job search platform.


Getting Started Prerequisites Before starting, ensure you have the following tools installed: • Java (JDK 11 or higher) • MySQL Database and MySQL Workbench • IDE: IntelliJ IDEA or Eclipse (any IDE with Maven support) • Maven: For managing project dependencies

Installation

  1. Clone the Repository bash Copy code git clone https://github.com/yourusername/job-portal-web-app.git
  2. Database Setup o Create a new MySQL database for the application. o Import the SQL scripts (00-create-user.sql and 01-jobportal.sql) found in the 00-starter-sql-scripts folder.
  3. Configure Application Properties Open application.properties and update the database configurations (username, password, etc.).
  4. Build and Run the Application arduino Copy code mvn clean install mvn spring-boot:run
  5. Access the Application The application will be available at http://localhost:8080.

Application Architecture This project is built on a standard Spring Boot MVC pattern: • Controllers handle HTTP requests and responses. • Services implement business logic. • Repositories interact with the database using JPA. • Thymeleaf Templates render the UI on the client-side. Refer to the Application Architecture section for more details on each layer.


Feature Details Recruiter Features • Create New Job Posts: Add jobs with detailed descriptions, salary, location, and more. • View Jobs: Access a list of posted jobs and details. • Manage Applicants: View candidates who applied for specific job posts. • Profile Management: Update recruiter profiles, including uploading profile photos. Job Candidate Features • Job Search: Search through available job listings. • Apply for Jobs: Apply for jobs and track applications. • Profile Management: Edit profile information, upload resumes, and showcase skills. Common Features • User Registration: Sign up as a recruiter or job candidate. • Login and Logout: Secure authentication for user sessions.


Database Schema The database schema includes entities like Users, JobPostActivity, JobSeekerProfile, and RecruiterProfile. Relationships between tables are set up to manage data efficiently for both recruiters and candidates. Refer to the Database Schema page for an ER diagram and detailed explanations of each table.


Development Roadmap This project was developed in stages:

  1. User Registration and Login: Initial setup for user authentication.
  2. Profile Management: Create recruiter and candidate profiles.
  3. Job Posting and Application Management: Enable recruiters to post jobs and candidates to apply.
  4. Advanced Features: Skills management, job search, and resume upload.

Troubleshooting • Database Connection Issues: Ensure application.properties is correctly configured with your MySQL username, password, and database URL. • Email Duplication in Registration: If you encounter an error with duplicate emails during registration, ensure email uniqueness in the Users table. • File Upload Problems: Make sure your IDE has access to file storage and necessary permissions for file uploads.


Contributing We welcome contributions to improve this project! Please follow these steps:

  1. Fork the Repository
  2. Create a Branch (git checkout -b feature-branch)
  3. Commit Your Changes (git commit -m 'Add new feature')
  4. Push to Branch (git push origin feature-branch)
  5. Create a Pull Request
Clone this wiki locally