An open API service indexing awesome lists of open source software.

https://github.com/ppirog/joboffers

excercise to practise commercial technologies such as spring-boot, junit, mockito, mongodb, wiremock, docker, testcontainters, redis. App deployed on AWS
https://github.com/ppirog/joboffers

aws docker java junit lombok maven mockito mongodb redis spring spring-boot spring-security testcontainers wiremock

Last synced: 2 months ago
JSON representation

excercise to practise commercial technologies such as spring-boot, junit, mockito, mongodb, wiremock, docker, testcontainters, redis. App deployed on AWS

Awesome Lists containing this project

README

          


Java
Spring
mongoDB
redis
Docker
JUnit
mocikto
Testcontainers
HTTP
REST
IntelliJ
Auth0
Maven
Lombok

AWS






Angular
TypeScript
CSS
HTML


# LIVEDEMO

CLICK LINK TO SEE ON YOUTUBE HOW APP WORKS:
https://www.youtube.com/watch?v=-vTgTVoMRhs

CLICK LINK TO USE APP:
http://ec2-3-79-167-135.eu-central-1.compute.amazonaws.com/login (currently disabled)

# Frontend

Frontend to this app: https://github.com/ppirog/joboffers-front

# Info

This apllication fetches job offers from an external service using a rest api and stores it in mongodb database.

Application was deployed on AWS. (instruction how to use it in LIVEDEMO section)
To boost time efficiency during making request redis db was added.

Fetching new offers is done by app automaticly using scheduler.

To use application user has to register, login and fetch JWT token

Then user can fetch data using endpoints:
- GET /offers
- GET /offers/{id}

Application enables adding offers manualy using endpoint:
- POST /offers

All functionality are unit and integration tested.

# Core
- Java
- Spring
- MongoDb
- Redis
- Spring Security
- Scheduler
- Docker
- JWT
# Testing:
- JUnit
- AssertJ
- Mockito
- Testcontainers
- Wiremock
- MockMvc

# Architecture
![img](https://github.com/ppirog/JobOffers/assets/126290295/c0a5aa63-4b33-467d-adbe-7b013c43340e)

# HOW TO USE IT FROM POSTMAN
Application was deployed on AWS.
If you want to use deployed app use postman as in an example below BUT INSTEAD OF
http://localhost:8080 add http://ec2-3-79-167-135.eu-central-1.compute.amazonaws.com:8000

http://ec2-3-79-167-135.eu-central-1.compute.amazonaws.com:8000/register
http://ec2-3-79-167-135.eu-central-1.compute.amazonaws.com:8000/token
http://ec2-3-79-167-135.eu-central-1.compute.amazonaws.com:8000/offers

# Postman AWS
![image](https://github.com/ppirog/JobOffers/assets/126290295/fc30f795-17e5-4879-935b-e15d8fe38e83)

# Postman Localhost
![image](https://github.com/ppirog/JobOffers/assets/126290295/423242ea-d62f-411f-9011-02f569c16898)
![image](https://github.com/ppirog/JobOffers/assets/126290295/adc880e9-57a0-4afb-9a3e-32653bae169f)
![image](https://github.com/ppirog/JobOffers/assets/126290295/438f160d-add5-43e5-9ff9-796cb5f3ceee)
![image](https://github.com/ppirog/JobOffers/assets/126290295/08550690-b446-49e8-b64b-03b9f5ee11e4)
![image](https://github.com/ppirog/JobOffers/assets/126290295/e5448ad9-a7e8-4682-aaf9-4c2edc499aa0)

##### To start app go to go to file docker-compose.yml first and launch it