Modern, intuitive online store that allows users to browse products, manage their cart, place orders, add opinions and comments about products. The application was developed as part of an academic project and utilizes popular frontend and backend technologies. Data is fetched from local SQLite database. Main site has been tweaked with unusual js animation.
✅ Homepage with product list and search functionality
✅ Product List (search, category filtering)
✅ Product Details (description, availability, reviews)
✅ Product comments and rates
✅ Shopping Cart (add/remove products, checkout)
✅ Order History
✅ User Registration & Login (JWT authentication, session management)
✅ Admin Panel (moderating product reviews)
✅ User Roles & Permissions (admin, authenticated user)
- ⚛️ React
- 🏗️ React Router DOM
- 📡 Axios
- 🎨 Material UI
- ⚡ Vite (for fast development and build process)
- 🚀 Express.js
- 🗄️ SQLite
- 🔐 JSON Web Token (JWT)
- 🔑 Bcrypt
- 🔄 CORS
- 🛡️ Authentication Middleware
/server
├── controllers
│ ├── authControllers.js # Login management
│ ├── productControllers.js # Product handling
│ ├── reviewsControllers.js # Fetching product reviews
│ ├── userControllers.js # User management
├── middleware
│ ├── authMiddleware.js # Authentication handling
├── routes
│ ├── authRoutes.js
│ ├── orderRoutes.js
│ ├── productRoutes.js
│ ├── reviewsRoutes.js
│ ├── userRoutes.js
├── database.db # SQLite database
├── db.js # Database initialization
├── server.js # Main server file
/src
├── App.tsx # Main component
├── main.tsx # Application entry point
├── components
│ ├── AdminReviews.tsx # Admin review moderation
│ ├── Cart.tsx # Shopping cart
│ ├── ErrorBoundary.tsx # Error handling
│ ├── History.tsx # Order history
│ ├── Login.tsx # Login page
│ ├── ProductDetails.tsx # Product details
│ ├── ProductList.tsx # Product list
│ ├── Register.tsx # User registration
├── index.html # Main HTML page
POST /api/users
- Register a new userPOST /api/auth/login
- User loginGET /api/users/
- Retrieve users
GET /api/products
- Fetch all productsPOST /api/products
- Add a new productPUT /api/products/:id
- Edit a productDELETE /api/products/:id
- Delete a product
POST /api/orders
- Create an orderGET /api/orders
- Retrieve all orders
GET /api/products/:id/reviews
- Fetch product reviewsPOST /api/products/:id/reviews
- Add a reviewDELETE /api/reviews/:id
- Delete a review
- Maciej Wiśniewski - Backend, Frontend, Graphics
📌 Project developed for AGH WDAI course 🎓