Skip to content

pgraczykdev/JobOffers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JobOffers

Web application designed for aggregation of job offers for Junior Java Developers from various sources, including websites and other web applications. The primary functionality of the application involves extracting current job listings from websites.
Only registered and verified user (bearer authentication) can use application's endpoints (besides /register and /token).

Details

  • Java 17+,
  • Spring Boot web application,
  • Modular monolith hexagonal architecture,
  • Facade design pattern,
  • NoSQL database (MongoDB) for offer and user repositories,
  • Unit tests covering each of the modules,
  • "Happy path" integration test (offers external API stubbed using WireMock),
  • Scheduler used for fetching new, unique offers periodically,
  • As for now it is a pure backend application.

Installation and testing

Docker Desktop is required for the application to run.

Docker files:
a) Docker-compose file - docker-compose.yml
b) Mongo-db admin role initialization - init-mongo.js

Application endpoints can be tested using Postman or Swagger UI (default address: http://localhost:8080/swagger-ui/index.html).

ENDPOINT METHOD REQUEST RESPONSE FUNCTION
/register POST JSON (username, password) JSON Registers unique user (based on username)
/token POST JSON (username, password) JSON Retrieves token for the registered user (login)
/offers GET -- JSON Retrieves all saved offers from the database
/offers/{id} GET PATH VARIABLE (id) JSON Retrieves offer with the given id
/offers POST JSON (company, title, salary, offerUrl) JSON Adds new, unique offer (based on offerUrl) to the database

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published