A responsive full-featured online store built with the MERN stack (MongoDB, Express.js, React, Node.js).
The platform supports JWT authentication, role-based access, bcrypt-encrypted passwords, and admin/customer modes.
Includes live order management, smart filtering, and dynamic charts for sales insights.
- Register and log in securely
- Browse a filterable product catalog (title, category, price)
- Add products to real-time cart with quantity and total price
- Place orders and view order history
- View and manage personal data and orders
- Role-based access for admin with separate interface
- Manage product catalog (add/update/delete products)
- Manage categories and customer data
- View sales statistics in a dashboard (pie and bar charts)
- Track who bought what and when
- βοΈ React (with Vite) and Redux
- π Node.js + Express
- ποΈ MongoDB with Mongoose
- π JWT for authentication
- π Bcrypt for password hashing
- π¨ Bootstrap 5
- π Chart.js / Recharts
# Clone the repository
git clone https://github.com/HaimHalfon/HaimsStore.git
# Navigate into the project folder
cd HaimsStore
You need two terminals: one for the backend and one for the frontend.
# Navigate to the server folder
cd server
# Install dependencies
npm install
# Set environment variables (create .env file in /server)
PORT=3000
MONGO_URI=mongodb://localhost:27017/your-db-name
JWT_SECRET=yourSecretKey
JWT_EXPIRES_IN=3h
# Seed the database (initial test data)
npm run seed
# Start the server
npm start
# Navigate to the client folder
cd client
# Install dependencies
npm install
# Start the Vite development server
npm start
Then visit: http://localhost:5173