Skip to content

[Side Project] Service to find jobs published openly on the web. This service do crawler to find jobs and parse HTML.

Notifications You must be signed in to change notification settings

ricardo-campos-org/fastvagas-java

Repository files navigation

Coverage Branches Quality Gate Status

fastvagas-java

[Side Project] Service to find jobs published openly on the web. This service do crawler to find jobs and parse HTML.

Tech stack

  • Back-end
  • Front-end
  • Docker
  • Database related
  • Testing
  • Maven
  • NPM
  • Java related
  • JavaScript/TypeScript/React related
  • Shell scripting

Requirements

  • Java OpenJDK 17 (I recommend sdkman)
  • Maven (You can use sdkman)
  • Docker

Suggestions

  • Postman
  • DBeaver

Running

You can get the service running with ./mvnw spring-boot:run. But you need the database running to be able to run the service. You can start the database in a Docker container with docker run -t -i -p 5432:5432 -e POSTGRES_USER=$DATASOURCE_USER -e POSTGRES_PASSWORD=$DATASOURCE_PASS -e POSTGRES_DB=$DATASOURCE_NAME -v data:/var/lib/postgresql/fastdata postgres:14.6-bullseye

The server should start at the port 8080

Running with Docker

Build:

docker build -t ghcr.io/ricardo-campos-org/fast-jobs:1.0 .

Remember you need a Postgres instance up and running!

docker run -d -p 5432:5432 \
  --name fast-jobs-postgres \
  -e POSTGRES_USER=${DATASOURCE_USER} \
  -e POSTGRES_DB=${DATASOURCE_NAME} \
  -e POSTGRES_PASSWORD=${DATASOURCE_PASS} \
  postgres:13.9-bullseye

Running:

docker run -t -i --net=host \
  --name fast-jobs \
  --env-file .env \
  ghcr.io/ricardo-campos-org/fast-jobs:1.0

Running with Docker Compose:

docker-compose up --build

Cleaning up Docker Compose:

docker-compose down --remove-orphans

Tests

Unit tests run with surefire maven plugin. You can run all unit tests running with ./mvnw clean test

Integration tests run with failsafe maven plugin. You can run all integration tests running with ./mvnw clean verify

You can run all tests with:

./mvnw --no-transfer-progress clean verify test

Checkstyle

And before making any changes, make sure the checkstyle is passing

./mvnw --no-transfer-progress checkstyle:checkstyle -Dskip.checkstyle=false