This repository contains the monolithic version of the Job Application platform, a comprehensive system for managing job postings, company profiles, and user reviews. Built with Java and Spring Boot, this application provides a robust API for job seekers and employers alike.
|
|
|
|
graph TD A[Client] --> B[Spring MVC] B --> C[Service Layer] C --> D[Repository Layer] D --> E[MySQL Database] style A fill:#f9f,stroke:#333,stroke-width:2px style B fill:#bbf,stroke:#333,stroke-width:2px style C fill:#dfd,stroke:#333,stroke-width:2px style D fill:#fdd,stroke:#333,stroke-width:2px style E fill:#ddf,stroke:#333,stroke-width:2px - Backend: Java 11, Spring Boot 2.7
- ORM: Hibernate, Spring Data JPA
- Database: MySQL 8.0
- Build Tool: Maven
- Documentation: Swagger/OpenAPI
- JDK 11 or higher
- Maven 3.6+
- MySQL 8.0+
-
Clone the repository
git clone https://github.com/khan-sk-dev/Job-Application.git cd Job-Application -
Configure database
Create a MySQL database and update
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/job_application_db spring.datasource.username=your_username spring.datasource.password=your_password spring.jpa.hibernate.ddl-auto=update
-
Build and run
mvn clean install mvn spring-boot:run
-
Access the application
Open your browser and navigate to http://localhost:8080
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/jobs | Get all jobs |
| GET | /api/jobs/{id} | Get job by ID |
| POST | /api/jobs | Create a new job |
| PUT | /api/jobs/{id} | Update a job |
| DELETE | /api/jobs/{id} | Delete a job |
Example Job Request/Response
Request:
POST /api/jobs { "title": "Senior Java Developer", "description": "We're looking for an experienced Java developer...", "company": "TechCorp", "location": "San Francisco, CA", "salary": 120000 }Response:
{ "id": 1, "title": "Senior Java Developer", "description": "We're looking for an experienced Java developer...", "company": "TechCorp", "location": "San Francisco, CA", "salary": 120000, "createdAt": "2025-05-17T10:30:00" }| Method | Endpoint | Description |
|---|---|---|
| GET | /api/companies | Get all companies |
| GET | /api/companies/{id} | Get company by ID |
| POST | /api/companies | Create a new company |
| PUT | /api/companies/{id} | Update a company |
| DELETE | /api/companies/{id} | Delete a company |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/reviews | Get all reviews |
| GET | /api/reviews/{id} | Get review by ID |
| POST | /api/reviews | Create a new review |
| PUT | /api/reviews/{id} | Update a review |
| DELETE | /api/reviews/{id} | Delete a review |
job-application/ βββ src/ β βββ main/ β β βββ java/ β β β βββ com/ β β β βββ jobapp/ β β β βββ controller/ β β β βββ model/ β β β βββ repository/ β β β βββ service/ β β β βββ JobAppApplication.java β β βββ resources/ β β βββ static/ β β βββ templates/ β β βββ application.properties β βββ test/ β βββ java/ β βββ com/ β βββ jobapp/ β βββ JobAppApplicationTests.java βββ .mvn/ βββ mvnw βββ mvnw.cmd βββ pom.xml βββ README.md Run unit tests with:
mvn testRun integration tests with:
mvn verify# Build the Docker image docker build -t job-application:latest . # Run the container docker run -p 8080:8080 job-application:latestkubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/service.yaml- Implement user authentication and authorization
- Add email notification system
- Develop a front-end client using React
- Migrate to microservices architecture
- Implement CI/CD pipeline
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please refer to our contribution guidelines for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
Project Maintainer - @khan-sk-dev
Project Link: https://github.com/khan-sk-dev/Job-Application