Production-focused backend system built with Java & Spring Boot.
Demonstrates real-world backend concerns: authentication, authorization, business rules, testing, and CI.
This project is a role-based Job Portal backend designed to reflect how backend services are built and secured in real systems.
The focus is not UI, but:
- enforcing business rules centrally
- securing APIs correctly
- keeping the system safe even if controllers change
Supported roles: Employer, Job Seeker
- REST API design
- Stateless authentication using JWT
- Role-based authorization
- Service-layer business rule enforcement
- Layered architecture (Controller → Service → Repository)
- PostgreSQL persistence using JPA
- Unit testing of critical logic
- Continuous Integration (CI)
- Language: Java 17
- Framework: Spring Boot, Spring MVC, Spring Security
- Authentication: JWT (stateless)
- Database: PostgreSQL, Hibernate / JPA
- Testing: JUnit 5, Mockito
- Build Tool: Maven
- CI: GitHub Actions (Maven build, Java 17)
- Deployment: AWS EC2 (environment-based configuration)
controller/ -> REST endpoints service/ -> Business logic & authorization rules repository/ -> Data access (JPA) dto/ -> API contracts security/ -> JWT filters & security configuration exception/ -> Global exception handling config/ -> Application configuration
Key principle:
Authorization and validation are enforced in the service layer, not only at the controller level.
- Register & login
- Apply to job postings
- View application history
- Create, update, and delete job postings
- View applicants
- Accept or reject applications
- Browse job listings
- JWT-based stateless authentication
- Role-based authorization (Employer vs Job Seeker)
- Ownership checks for employer-managed job posts
- Protection against unauthorized actions and invalid state changes
The system remains secure even if endpoints are misused.
Unit tests are written for critical backend logic, including:
- authorization rules
- prevention of duplicate job applications
- job ownership validation
- invalid operations and error cases
Testing focuses on service-layer behavior, not controller wiring.
- GitHub Actions CI pipeline
- Automatically builds the project on every push
- Uses Java 17 and Maven
- Ensures the backend compiles before merge
- Clone the repository
- Configure PostgreSQL credentials in
application.yml - Run the application:
mvn spring-boot:run
- Test APIs using Postman or any REST client
- Authenticate to access protected endpoints (JWT required)
- AWS EC2
- Any JVM-compatible cloud environment
- Docker-supported platforms
Deepsan Bhandari
Backend Java Developer (Spring Boot)
Email: deepsanbhandari7@gmail.com
GitHub: github.com/DeepsanBhandari
LinkedIn: linkedin.com/in/deepsan7
This project exists to demonstrate:
- backend engineering fundamentals
- secure API design
- disciplined architecture
- readiness to contribute to real backend codebases