JobOffers is a Spring Boot web application that allows you to collect job offers from various sources for Junior Java Developers (websites, other web applications). The main function of the application is fetching offers form external server in scheduled time. In order to receive offers, user has to register to website. After that, using generated token, user can get offers or add a new one by themselves. In order to connect to the real-time job offer fetcher, saved offers are removed at each scheduler interval. For a better presentation simple frontend in React is made. Application was deployed on AWS EC2 server. Currently, only local usage is available.
Author: Jakub Wykocki
Linkedin: https://www.linkedin.com/in/jakub-wykocki/
Spring Boot web application
Facade design pattern
Modular monolith hexagonal architecture
NoSQL databases (MongoDB) for storing offers and users data
Code coverage with unit tests
Integration tests
Scheduled fetching offers from external server
Controllers tested via mockMvc
Token authentication
Redis cache
Simple frontend in React
Application deployed on AWS Linux EC2 server
Application provides the following endpoints:
ENDPOINT | METHOD | REQUEST | RESPONSE | FUNCTION |
---|---|---|---|---|
/register | POST | JSON BODY (username and password) | JSON (username and created flag) | register a user |
/token | POST | JSON BODY (username and password) | JSON (token) | give user a token |
/offers | GET | PATH VARIABLE (token) | JSON (offers) | sending offers |
/offers/{id} | GET | PATH VARIABLE (token) | JSON (offer) | finding offer by id |
/offers | POST | PATH VARIABLE (token) | JSON (offer) | creates new offer |
To use application clone this repository and run it locally. It use port 8000 on localhost by default. You can also use frontend which is my second github repository (https://github.com/jwykocki/job-offers-frontend).
To test app you can use swagger or send requests manually (e.g. Postman) by adding proper /endpoint (/register, /token, /offers)
Author: Jakub Wykocki
Linkedin: https://www.linkedin.com/in/jakub-wykocki/
If you like this project, please hit the star button, thank you!