Skip to content

Repository files navigation

PriceKeep

PriceKeep is an application that fetch products and prices from NZ-based supermarket websites. It also features graph to show the price trends and shows the lowest and averages.

Technology stack

Frontend:

  • TypeScript/vue.js/TailwindCSS
  • Vite
  • Shadcn/vue for the UI
  • Orval (API library generation)

Backend:

  • Java 25
  • Gradle (build tool)
  • Quarkus (w/Hibernate ORM)
  • PostgreSQL + PostGIS plugin (Data storage and location)
  • Microsoft Playwright (For scraping)
  • MapStruct (Object mapping)
  • Quartz Scheduler (Run)

Requirements for running dev environment locally

You'll need the following items pre-installed before starting

Starting the dev environment

Run PriceKeep in dev mode that enables live coding using:

./gradlew quarkusDev

The one single command would help you to start both frontend and backend.

Building a single package

PriceKeep can be packaged using:

./gradlew build -x test

The application, packaged as jar, is located in build/pricekeep-1.0.0-SNAPSHOT-runner.jar. To run it, use the following command:

java -jar pricekeep-1.0.0-SNAPSHOT-runner.jar

Runtime Configuration

You may configure the database with application.yaml in the config/ directorty located at the same place as the runner jar.

exercise-data/
├─ config
│ └─ application.yaml
└─ pricekeep-1.0.0-SNAPSHOT-runner.jar

Put the following in your application.yaml:

quarkus:
  profile: staging

"%staging":
  quarkus:
    datasource:
      db-kind: postgresql
      jdbc:
        url: jdbc:postgresql://[postgre_server_address]:[postgre_server_port]/[pricekeep_db]
      username: [pricekeep_db_user]
      password: [pricekeep_db_pwd]
    flyway:
      migrate-at-start: true
  fetchImgPath: [image_storeage_path]

About

Auto fetch and keep track of grocery prices of NZ supermarket chains

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages