Skip to content

A Full Stack Web Application, made with MERN technology. This Web Application is to help users get updated local market prices of essential items and compare them across different markets.

Notifications You must be signed in to change notification settings

abdullahalnoman003/Market-Monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 Market Monitor

Market Monitor is a real-time, role-based MERN Stack application built to monitor, manage, and analyze local market product prices. With user-friendly dashboards, vendor controls, Stripe payments, live filtering, dynamic ads, and interactive price charts β€” this platform empowers users, vendors, and admins with complete insight and control over marketplace dynamics.


🎯 Project Objective

Designed to simplify local market price tracking and management with secure access, interactive UI, and intelligent product handling β€” making it ideal for both consumers and market vendors.


πŸš€ Live Demo

πŸ”— Visit Market Monitor


✨ Key Features

πŸ‘₯ Role-Based Dashboard Access

  • πŸ” Secure login via Firebase Authentication
  • πŸ‘€ User Dashboard: Watchlist, Orders, Price Trend Analytics
  • πŸ›’ Vendor Dashboard: Add/Edit Products & Ads
  • πŸ‘‘ Admin Dashboard: Manage Users, Products, Ads, Orders

πŸ“¦ Product Management

  • βœ… Products require admin approval before listing
  • πŸ“ Vendors can manage products (create, edit, delete)
  • πŸ“ˆ Vendors can track historical prices

πŸ” Smart Search & Filtering

  • πŸ“… Filter products by date or range
  • πŸ’Έ Sort by price (ascending/descending)
  • πŸ”Ž Admin-only server-side search for users/orders

πŸ’³ Stripe Payment Integration

  • πŸ” Secure product payments via Stripe Checkout
  • βœ… Orders saved post-payment with status tracking
  • πŸ“’ Success/Error feedback via SweetAlert with redirect

πŸ“ˆ Price Trend Analytics

  • πŸ“Š Interactive Recharts-based graphs
  • πŸ“† Compare historical prices over time
  • πŸ›’ Helps users make smarter buying decisions

❀️ Watchlist System

  • ⭐ Add items to personalized watchlist
  • πŸ“‰ Track price trends of saved products
  • ❌ Remove with confirmation modals

πŸ“’ Advertisements

  • πŸ“€ Vendors can submit advertisements
  • βœ… Admin approval/rejection with feedback modal
  • πŸ“„ Dynamic status: pending, approved, or rejected

πŸ” Secured APIs & Middleware

  • πŸ”‘ Firebase ID token-based protected routes
  • πŸ›‘οΈ Express custom middleware for role-based access

πŸ’» Technologies Used

πŸ”§ Frontend

  • React, React Router DOM
  • Axios with secure interceptors
  • React Query for data fetching and caching
  • Framer Motion & Lottie for animations
  • Tailwind CSS + DaisyUI themes
  • Recharts for charting
  • Stripe.js, @stripe/react-stripe-js

πŸ”§ Backend

  • Node.js + Express.js
  • MongoDB (CRUD, filter, aggregate)
  • Firebase Admin SDK for token verification
  • Middleware for role protection
  • CORS, Dotenv, Morgan

🌟 Special Highlights

  • 🎨 Dark Mode using DaisyUI (fantasy & abyss)
  • πŸ“± Fully responsive & mobile-friendly
  • 🧩 Reusable and well-structured components
  • 🎯 Real-time Firebase role validation middleware
  • πŸ’‘ Optimized UI with motion, modals, loaders, and fallback UIs

🏠 Pages Overview

πŸ›’ Home

  • 🎯 Public preview of 6 approved products
  • πŸ“’ Advertisements carousel
  • πŸ“ˆ Trend animations (Framer Motion)

πŸ—‚οΈ All Products

  • πŸ—“οΈ Filter by date or range
  • πŸ” Search by keyword
  • πŸ’Έ Sort by price

πŸ“‹ Product Details

  • πŸ’¬ User reviews with ratings
  • πŸ“‰ Recharts-based price comparisons
  • ⭐ Add to Watchlist
  • πŸ’³ Purchase via Stripe

πŸ‘€ User Dashboard

  • πŸ“Š Track price analytics
  • ⭐ Manage Watchlist
  • 🧾 View orders and details

πŸ§‘β€πŸŒΎ Vendor Dashboard

  • πŸ“ Submit daily prices
  • πŸ“· Upload product photos
  • 🧾 Manage product listings & ads

πŸ‘‘ Admin Dashboard

  • πŸ‘₯ Manage all users/roles
  • πŸ“‹ Approve/Reject products & ads
  • πŸ“ Feedback modals for rejection
  • 🧾 Monitor and search all orders/users

πŸ” Environment Variables

Client

VITE_FIREBASE_API_KEY=...
VITE_FIREBASE_AUTH_DOMAIN=...
VITE_FIREBASE_PROJECT_ID=...
VITE_FIREBASE_STORAGE_BUCKET=...
VITE_FIREBASE_MESSAGING_SENDER_ID=...
VITE_FIREBASE_APP_ID=...

Server

FIREBASE_TYPE=...
FIREBASE_PROJECT_ID=...
FIREBASE_PRIVATE_KEY=...
FIREBASE_CLIENT_EMAIL=...
STRIPE_SECRET_KEY=...

βš™οΈ Getting Started

Client

cd client
npm install
npm run dev

Server

cd server
npm install
npm run dev

πŸ“¦ Dependencies

See below for a list of major libraries and tools used in the frontend. Sure! Here's the README section with just the dependencies, formatted and ready to copy:


🧩 Frontend Dependencies (client/)

βœ… Core Libraries

  • react
  • react-dom
  • react-router-dom

🎨 Styling & UI

  • tailwindcss
  • daisyui
  • aos (scroll animations)
  • lottie-react (vector animations)
  • react-icons
  • react-responsive-carousel

πŸ“Š Data & Visualization

  • recharts
  • react-countup
  • react-datepicker

πŸ” Forms & UX

  • react-hook-form
  • react-toastify
  • sweetalert2
  • react-tooltip
  • react-simple-typewriter

βš™οΈ Functionality

  • axios
  • firebase
  • @tanstack/react-query
  • react-infinite-scroll-component

πŸ’³ Payments

  • @stripe/react-stripe-js
  • @stripe/stripe-js

πŸ› οΈ Dev Dependencies

  • vite
  • @vitejs/plugin-react
  • eslint
  • @eslint/js
  • eslint-plugin-react-hooks
  • eslint-plugin-react-refresh
  • @types/react
  • @types/react-dom
  • globals

βœ… Deployment Checklist

  • πŸ”— Client: Deployed on Netlify
  • βš™οΈ Server: Hosted on Vercel with domain whitelisting
  • πŸ” Firebase: Auth domain and token verification active
  • πŸ“¦ MongoDB Atlas for production database
  • βœ… All routes secured, tested, and optimized

πŸš€ Ready to dive in?

Star ⭐ this repo, clone it, and start building your bookshelf today!

πŸ§‘β€πŸ’» Developer

πŸ‘¨β€πŸŽ“ Abdullah Al Noman
πŸ”— LinkedIn β€’
πŸ”— Github β€’

β€œMarket Monitor is a showcase of everything I’ve learned β€” from secure API handling to animation-rich frontend experiences.”

Random Quote

πŸ’‘ β€œA reader lives a thousand lives before he dies. The man who never reads lives only one.” β€” George R.R. Martin


πŸ“¬ Contact

Feel free to connect or collaborate!


About

A Full Stack Web Application, made with MERN technology. This Web Application is to help users get updated local market prices of essential items and compare them across different markets.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages