Skip to content

Gimi818/JobOffers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JobOffers

Web application for easier browsing of job offers for programmers.

The application that gives the opportunity to search offers jobs for junior developers. The main function of the application is to retrieve data from a remote server and save it with a function to search and add jobs.

This project uses modular monolithic application architecture with elements of hexagonal. I used a NoSQL database because MongoDB works best for fast writing and reading of simple data.

The user first needs to register and will receive an authorization token. The Jwt token will enable the user to use the functionalities of the application. The registered user can browse job offers with information about the company name, job position, salary and a link to the offer. In addition, users can create new personalized job offers, which will be stored in the database.

Endpoint GET is cacheable using Redis to improve the speed of requests. The application is connected to a remote server from which it gets job offers a request to the remote server is made every hour using a spring scheduler to always have new and current job offers.

The application is tested using unit tests.

Application is developed using the following technologies:

Core:

java spring docker mongodb redis git docker

Testing:

java java java

To run the application, follow these steps:

  • Install Mongodb and docker on your computer.
  • Clone the repository in IntelliJ IDEA using the link https://github.com/Gimi818/JobOffers.git
  • Enter "docker-compose up" in thermal.
  • Run the applications in IntelliJ IDEA.
  • Check the available endpoints at the link localhost:8080/swagger-ui/index.html#/
  • Try the applications in Postaman, the steps on how to do it are below.

How to use the application in Postman:

Step 1 :
POST localhost:8080/register 
Enter your username and password. 

Step 2 :
POST localhost:8080/token
Enter your username and password to get the token.

Step 3.1 : 
Select the authorization field and select the Bearer token option 
and paste the token you received into the all next steps.

Step 3.2 : 
GET localhost:8080/offers
Get all the latest job offers. 

Step 4 : 
GET localhost:8080/offers
Add a new job offer.

Step 5: 
GET localhost:8080/offers/{id}
Find a job offer by id.

Tests: