A comprehensive career guidance and job portal platform.
- Backend: Spring Boot 3.5.5
- Database: PostgreSQL
- ORM: Hibernate/JPA
- Build Tool: Maven
- Java Version: 17
- Clone the repository:
git clone https://github.com/Siyam-Bhuiyan/JobSpring.git
cd JobSpring/server-
Configure PostgreSQL database:
- Create a database named
jobspring - Update
src/main/resources/application.propertieswith your database credentials
- Create a database named
-
Run the application:
./mvnw spring-boot:runBase URL: http://localhost:8080/api
POST /api/auth/login
{
"email": "user@example.com",
"password": "password123"
}POST /api/users
{
"name": "John Doe",
"email": "john@example.com",
"password": "password123",
"role": "user"
}GET /api/usersGET /api/users/{id}PUT /api/users/{id}DELETE /api/users/{id}
POST /api/companies
{
"name": "TechCorp",
"description": "A technology company",
"location": "New York",
"website": "https://techcorp.com"
}GET /api/companiesGET /api/companies/{id}PUT /api/companies/{id}DELETE /api/companies/{id}
POST /api/jobs/company/{companyId}
{
"title": "Software Engineer",
"description": "Develop amazing software",
"location": "New York",
"responsibilities": "Code, test, debug applications",
"qualifications": "Bachelor degree in Computer Science",
"skills": ["Java", "Spring Boot", "React"]
}POST /api/jobs
{
"title": "Software Engineer",
"description": "Develop amazing software",
"location": "New York",
"responsibilities": "Code, test, debug applications",
"qualifications": "Bachelor degree in Computer Science",
"skills": ["Java", "Spring Boot", "React"],
"company": {
"id": 1
}
}GET /api/jobsGET /api/jobs/{id}GET /api/jobs/company/{companyId}PUT /api/jobs/{id}DELETE /api/jobs/{id}
POST /api/applications/user/{userId}/job/{jobId}
{
"status": "applied",
"coverLetter": "I am excited to contribute to your team!"
}POST /api/applications/job/{jobId}
{
"user": {
"id": 1
},
"status": "applied",
"coverLetter": "I am excited to contribute to your team!"
}POST /api/applications
{
"user": {
"id": 1
},
"job": {
"id": 2
},
"status": "applied",
"coverLetter": "I am excited to contribute to your team!"
}GET /api/applicationsGET /api/applications/{id}GET /api/applications/user/{userId}GET /api/applications/job/{jobId}PUT /api/applications/{id}DELETE /api/applications/{id}
POST /api/blogs/user/{userId}
{
"title": "How I prepped for my first Java interview",
"content": "Notes, mistakes, what worked...",
"tags": ["Java", "Interview", "Career"],
"published": true
}POST /api/blogs
{
"title": "Career guidance for CS students",
"content": "Complete guide for computer science students...",
"author": {
"id": 1
},
"tags": ["Career", "Computer Science"],
"published": true
}GET /api/blogsGET /api/blogs/publishedGET /api/blogs/search?q={keyword}GET /api/blogs/{id}GET /api/blogs/user/{userId}PUT /api/blogs/{id}DELETE /api/blogs/{id}
server.port=8080
spring.datasource.url=jdbc:postgresql://localhost:5432/jobspring
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect