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.
- TypeScript/vue.js/TailwindCSS
- Vite
- Shadcn/vue for the UI
- Orval (API library generation)
- 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)
You'll need the following items pre-installed before starting
Run PriceKeep in dev mode that enables live coding using:
./gradlew quarkusDevThe one single command would help you to start both frontend and backend.
PriceKeep can be packaged using:
./gradlew build -x testThe 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.jarYou 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]