Skip to content

erdkash1/jobboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Job Board API

A RESTful job board API built with Spring Boot where employers can post jobs and applicants can apply. Built as a portfolio project to demonstrate real-world backend development skills.

Live Demo

Base URL: https://jobboard-production-7e72.up.railway.app

Tech Stack

  • Java 21
  • Spring Boot 3.5
  • Spring Security + JWT for authentication
  • Spring Data JPA + Hibernate for database access
  • PostgreSQL for the database
  • Maven for dependency management
  • Deployed on Railway

Features

  • User registration and login with JWT authentication
  • Role-based access control (EMPLOYER and APPLICANT roles)
  • Job posting management — create, view, and delete jobs
  • Job application system — apply and manage applications
  • Secure endpoints requiring authentication

Project Structure

src/main/java/com/iggy/jobboard/
├── controller/       # REST API endpoints
├── service/          # Business logic
├── repository/       # Database access
├── entity/           # JPA entities
├── security/         # JWT and Spring Security config

Getting Started

Prerequisites

  • Java 21
  • PostgreSQL
  • Maven

Setup

  1. Clone the repository
git clone https://github.com/erdkash1/jobboard.git
cd jobboard
  1. Create a PostgreSQL database
CREATE DATABASE jobboard_db;
  1. Update src/main/resources/application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/jobboard_db
spring.datasource.username=your_username
spring.datasource.password=your_password
jwt.secret=your_base64_encoded_secret
jwt.expiration=86400000
  1. Run the application
./mvnw spring-boot:run

The API will start on http://localhost:8080

Authentication

This API uses JWT authentication. To access protected endpoints:

  1. Register or login to get a token
  2. Add the token to the Authorization header of every request:
Authorization: Bearer your_token_here

API Endpoints

Auth

Method Endpoint Description Auth Required
POST /auth/register Register a new user No
POST /auth/login Login and get JWT token No

Jobs

Method Endpoint Description Auth Required
GET /jobs Get all jobs Yes
GET /jobs/{id} Get job by ID Yes
POST /jobs Post a new job Yes
DELETE /jobs/{id} Delete a job Yes

Applications

Method Endpoint Description Auth Required
GET /applications Get all applications Yes
POST /applications Apply for a job Yes
DELETE /applications/{id} Delete an application Yes

Example Requests

Register

POST https://jobboard-production-7e72.up.railway.app/auth/register

{
    "name": "John Doe",
    "email": "john@example.com",
    "password": "password123"
}

Post a Job

POST https://jobboard-production-7e72.up.railway.app/jobs

{
    "title": "Backend Developer",
    "description": "Looking for a Spring Boot developer",
    "company": "Tech Corp",
    "location": "Remote"
}

Author

Erdenesuren Shirmen — Senior Computer Science Student GitHub: @erdkash1

About

REST API for job posting and applications. Employers post jobs, applicants apply. Built with Spring Boot and JWT authentication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages