Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mjawaids/price-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PriceTracker - Smart Shopping Price Comparison App

A modern, full-featured price comparison and shopping management application built with React, TypeScript, and Supabase. Track prices across multiple stores, create intelligent shopping lists, and never overpay again.

✨ Features

πŸ›οΈ Smart Price Tracking

  • Track products across multiple stores and variants
  • Real-time price comparison with visual indicators
  • Price history and trend analysis
  • Automatic best price detection

πŸ“ Intelligent Shopping Lists

  • Create and manage multiple shopping lists
  • Automatic price optimization for your lists
  • Priority-based item organization
  • Store-grouped shopping recommendations

πŸͺ Store Management

  • Support for both physical and online stores
  • Delivery tracking and radius management
  • Store-specific pricing and availability

🎨 Beautiful Design

  • Modern glass morphism UI with gradient backgrounds
  • Fully responsive design for all devices
  • Dark/light mode with system preference detection
  • Smooth animations and micro-interactions

πŸ” Secure & Private

  • User authentication with Supabase Auth
  • Row-level security for all user data
  • Encrypted data storage
  • Privacy-first approach

🌍 Multi-Currency Support

  • Support for 50+ global currencies
  • Automatic currency detection based on locale
  • Consistent price formatting across the app

πŸš€ Live Demo

Visit the live application: https://spendless.ibexoft.com

πŸ› οΈ Tech Stack

  • Frontend: React 18, TypeScript, Tailwind CSS
  • Backend: Supabase (PostgreSQL, Auth, Real-time)
  • Icons: Lucide React
  • Build Tool: Vite
  • Deployment: Netlify
  • Styling: Tailwind CSS with custom glass morphism effects

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (version 18 or higher)
  • npm or yarn package manager
  • Git

πŸ”§ Development Setup

1. Clone the Repository

git clone https://github.com/mjawaids/price-tracker.git
cd price-tracker

2. Install Dependencies

npm install

3. Environment Setup

Create a .env file in the root directory and add your Supabase credentials:

VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key

You can find these values in your Supabase project dashboard under Settings > API.

4. Database Setup

The application uses Supabase as the backend. The database schema includes:

  • profiles: User profile information
  • products: Product catalog with variants and specifications
  • stores: Store information (physical and online)
  • shopping_lists: User shopping lists with items
  • accounts: Financial account tracking (if using financial features)
  • transactions: Transaction history
  • goals: Financial goals tracking

The database migrations are included in the supabase/migrations directory and will be automatically applied when you connect to Supabase.

5. Start Development Server

npm run dev

The application will be available at http://localhost:5173

6. Build for Production

npm run build

This creates an optimized production build in the dist directory.

πŸš€ Deployment

Deploy to Netlify (Recommended)

  1. Build the project:

    npm run build
  2. Deploy to Netlify:

    • Connect your repository to Netlify
    • Set build command: npm run build
    • Set publish directory: dist
    • Add environment variables in Netlify dashboard
  3. Environment Variables: Add the following environment variables in your Netlify dashboard:

    VITE_SUPABASE_URL=your_supabase_project_url
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
    

Deploy to Other Platforms

The application can be deployed to any static hosting service:

  • Vercel: Connect repository and deploy
  • GitHub Pages: Use GitHub Actions for automated deployment
  • AWS S3 + CloudFront: Upload build files to S3 bucket
  • Firebase Hosting: Use Firebase CLI to deploy

πŸ“ Project Structure

src/
β”œβ”€β”€ components/          # React components
β”‚   β”œβ”€β”€ AddProduct.tsx   # Product creation form
β”‚   β”œβ”€β”€ AddStore.tsx     # Store creation form
β”‚   β”œβ”€β”€ AuthModal.tsx    # Authentication modal
β”‚   β”œβ”€β”€ Dashboard.tsx    # Main dashboard
β”‚   β”œβ”€β”€ Navigation.tsx   # Navigation bar
β”‚   β”œβ”€β”€ ProductList.tsx  # Product listing
β”‚   β”œβ”€β”€ ShoppingList.tsx # Shopping list management
β”‚   └── ...
β”œβ”€β”€ contexts/           # React contexts
β”‚   β”œβ”€β”€ AuthContext.tsx # Authentication state
β”‚   β”œβ”€β”€ ThemeContext.tsx # Theme management
β”‚   └── SettingsContext.tsx # User settings
β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   └── useSupabaseData.ts # Supabase data management
β”œβ”€β”€ lib/                # External library configurations
β”‚   └── supabase.ts     # Supabase client setup
β”œβ”€β”€ types/              # TypeScript type definitions
β”‚   └── index.ts        # Main type definitions
β”œβ”€β”€ utils/              # Utility functions
β”‚   β”œβ”€β”€ currency.ts     # Currency formatting
β”‚   β”œβ”€β”€ price-comparison.ts # Price comparison logic
β”‚   └── storage.ts      # Local storage utilities
└── styles/
    └── index.css       # Global styles and Tailwind

🎨 Customization

Themes

The application supports light, dark, and system themes. You can customize the theme colors in:

  • src/index.css - Global CSS variables and Tailwind customizations
  • tailwind.config.js - Tailwind theme configuration

Currencies

Add or modify supported currencies in src/utils/currency.ts. The application automatically detects user locale and sets appropriate default currency.

Database Schema

Modify the database schema by creating new migration files in supabase/migrations/. Follow the existing naming convention and include proper RLS policies.

πŸ§ͺ Testing

Run the linter:

npm run lint

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

For support, email [email protected] or create an issue in the repository.


Made with passion for smart shoppers everywhere πŸ›’βœ¨

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published