BookEBook is a simple e-commerce-style app for browsing and purchasing computer science e-books. It showcases featured books, supports cart and order flow, and includes a product search with filters. The goal is to demonstrate a clean and functional online bookstore MVP.
🔗 Live: https://bookebook.netlify.app
- 🖼️ Browse featured e-books or the full catalog
- 📖 View product details (title, image, rating, tags like "Best Seller" or "Out of Stock")
- ⭐ Visual 5-star rating (read-only, based on product data)
- 🛒 Add and remove books from cart (from both list and product page)
- 🧾 Cart view with total price and "Place Order" functionality
- 👤 Guest login option for easy demo access
- 🔍 Filter books by:
- Price (low → high / high → low)
- Minimum rating (1–4 stars)
- Best sellers only
- In-stock only
- 🌗 Toggle between light and dark mode
- 🔐 Orders saved in dashboard (after placing order via popup form)
⚠️ Known Bug: On the product listing page, you can add unavailable (out-of-stock) products to the cart. This is blocked correctly on the product detail page.
- ⚛️ React (via Create React App)
- 🎨 Tailwind CSS for styling
- 🔗 React Router for navigation
- 🔐 Login system with optional guest access
- 🔁 React Toastify for notifications
- 🚀 Backend hosted with JSON Server + json-server-auth
You only need this section if you're cloning the project and running it locally.
git clone https://github.com/your-username/bookebook.git
cd bookebooknpm installREACT_APP_HOST=your_backend_url_here
REACT_APP_GUEST_LOGIN_EMAIL=guest_email_here
REACT_APP_GUEST_LOGIN_PASSWORD=guest_password_here
If you're using the provided backend or running the included server locally, you can use these defaults:
REACT_APP_HOST=http://localhost:8080
REACT_APP_GUEST_LOGIN_EMAIL=test@gmail.com
REACT_APP_GUEST_LOGIN_PASSWORD=123123123
npm startFrontend: https://bookebook.netlify.app
Backend: https://bookebook-server.onrender.com
- ✅ Disable "Add to Cart" for out-of-stock items on all views
- ✅ Add toast notifications for cart actions (added, removed, error)
- ✅ Allow switching between grid/list view for products
- ✅ Add loading spinners for slow backend responses (e.g. initial app load or product fetch)
- 🗣️ Add product reviews and user-generated ratings
- 🧠 Personalized book recommendations (based on purchases or categories)
- 💳 Integrate real payment gateway (Stripe/PayPal) instead of mock form
- 📊 Admin dashboard for managing products, tags, and stock
- 🧾 Expand order history view with collapsible invoice details (individual prices, order date/time, payment method, etc.)