Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PricePulse — Price Tracking & Notification Platform

PricePulse is a modern, premium web application built to monitor product prices across major e-commerce websites (Amazon India, Myntra, Meesho, Nykaa, Purplle) and automatically alert users when prices fall below their targets.

This project is optimized for performance, security, and high reliability in production environments.


Technical Architecture & Features

  • Java 21 Virtual Threads: Web scraping tasks are executed in parallel using Spring-integrated lightweight virtual threads, scaling effortlessly without blocking database pools.
  • Transactional Separation: The price monitoring scheduler runs queries asynchronously; each product update runs in its own isolated transaction, preventing transaction leaks.
  • REST Validation & Sanitized Handlers: Every API request is checked against strict validation constraints. Generic internal exceptions (HTTP 500) are sanitized to prevent security leaks.
  • OpenAPI Swagger Docs: Interactive API documentation is available out of the box.
  • Stand-alone Dockerization: The backend and frontend are dockerized and configured for multi-stage production deployment, leveraging Next.js standalone optimization.

Technology Stack

  • Backend: Spring Boot 3.4, Java 21 (Virtual Threads), Spring Security, Spring Mail, Hibernate, JSoup, PostgreSQL
  • Frontend: Next.js 16 (App Router, Standalone mode), React, TypeScript, TailwindCSS, Recharts, Framer Motion
  • Infrastructure: Docker, Docker Compose

Detailed Guides

For installation, execution, and deployment, please refer to the following documentation:

  • Local Installation Guide: Local installation, prerequisites, environment setup, local execution, and verification.
  • Production Deployment Guide: Production configurations, security constraints, Docker Compose setups, and service scaling.

Quick Start (Docker Compose)

To quickly build and run the entire application cluster (PostgreSQL, Backend API, Frontend client) locally:

  1. Copy the environment variables template:
    cp .env.example .env
  2. Build and launch the stack:
    docker compose up -d --build
  3. Access the services:

Environment Configuration

Configurations are configured using standard environment variables:

Variable Description Default
POSTGRES_DB PostgreSQL database name pricepulse
POSTGRES_USER PostgreSQL superuser username postgres
POSTGRES_PASSWORD PostgreSQL database password postgres
DB_DDL_AUTO Hibernate schema creation strategy validate
CORS_ALLOWED_ORIGINS Permitted origins (comma separated) http://localhost:3000
JWT_SECRET Secret key used for signing JWT tokens (Default secret)
APP_SCHEDULER_CRON Schedule interval expression for price checks 0 0 * * * *
SMTP_HOST SMTP server address for email dispatch (Disabled)
NEXT_PUBLIC_API_URL Base URL of the backend API http://localhost:8080/api/v1

About

AI-powered product price tracker with real-time scraping, notifications, analytics, and price insights.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages