Skip to content

szykor18/JobOffers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JobOffers (Full Stack Application)

You can chech the application here: http://ec2-52-28-84-79.eu-central-1.compute.amazonaws.com:8000/swagger-ui/index.html#/

The Job Offers application elevates the job search experience, focusing on opportunities for Junior Java Developers sourced directly from various websites. Operating seamlessly, it gathers job listings in a MongoDB database and employs intelligent caching for swift delivery of information for 60 minutes using Redis. Additionally, it ensures complete security by enabling user registration, login, and JWT token generation. Key features that distinguish this application:

  • Integration with Remote HTTP Server
  • JWT Token for Access
  • User Registration
  • Job Listings Update Every 3 Hours
  • Uniqueness of Listings in the Database
  • Caching Mechanism
  • Manual Addition of Job Listings
  • Each job listing includes essential details such as the link to the job, job title, company name, and salary range

AUTHOR: SZYMON KORNIK
LINKEDIN: https://www.linkedin.com/in/szymon-kornik-3b12ba217/
WEBSITE: https://www.szymonkornik.com/

Specification

  • Spring Boot web application
  • Architecture: Modular monolith hexagonal architecture
  • NoSQL databases (MongoDB) for coupon and results repositories
  • Facade's design pattern
  • High coverage with unit tests and integration tests
  • MockMvc was used to test the controllers and offer fetcher HTTP client was stubbed using WireMock
  • Scheduled offers fetching from HTTP client.
  • Full containerization in Docker

Tech

Lottery is developed using following technologies:

Core:
image   image   image   image   image   image  

Testing:
image   image   image  

Frontend:
     

Installation and run

Requirements:

To run the application:

  • Just run following command, and wait for containers to be pulled up and started.

docker compose up

  • Alternatively you can run docker-compose file through you IDE

After everything builds and ready, you can start the application and test the application using Postman or use Swagger.

Rest-API Endpoints

Application provides five endpoints: for retrieving all offers, for retrieving specific offer by ID, for saving an offer, for registration and login. Please follow the specification below:

Service url: http://localhost:8080

HTTP METHOD Endpoint REQUEST RESPONSE Function
GET /offers - JSON Retrieve all available offers
GET /offers/{offerId} PATH VARIABLE (offerId) JSON Retrieve an offer for a given ID
POST /offers BODY-JSON (offer) JSON Add new offer
POST /register BODY-JSON (registerRequest) JSON Register a new user
POST /token BODY-JSON (loginRequest) JSON Generate an access token with login details

Future plans:
  • Implement frontend with Angular
  • Deploying on AWS
  • Extract modules to microservices architecture

About

Full Stack "JobOffers" Web Application, collecting offers for Java Developers from external sources

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages