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 test
Run 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:latest
kubectl 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