A full-stack MERN bookstore platform with three dedicated portals — for customers, sellers, and administrators — featuring real-time analytics, book discovery, discounted deals, and complete inventory management.
Features · Screenshots · Getting Started · Project Structure · User Roles
ReadVerse is a full-featured online bookstore built on the MERN stack. It brings together three distinct user experiences under one platform:
- Customers browse, search, and purchase books with genre filtering, bestseller highlights, and live deals.
- Sellers / Publishers manage their own book catalogue, track sales, and monitor revenue from a personal dashboard.
- Administrators have platform-wide oversight managing all books, users, sellers, categories, and sales analytics.
- Hero Landing Page — "For the Love of Reading" with featured book covers and an Explore CTA
- Bestsellers Carousel — horizontally scrollable, with pricing (original + discounted), "Add to Basket", and wishlist buttons
- Offers / Deals Section — promotional banners with percentage-off tags
- Browse Page — "New Releases This Week" hero + filterable Top Sellers, Bestsellers, and Highest Rated sections
- Search — search by book title or author across the entire catalogue
- Genre Categories — Fiction, Self Help, Business, Children, and more
- Cart & Wishlist — persistent basket and saved books
- Authentication — beautiful login page with a full-bleed book-cover mosaic background, Register flow, Remember Me, and Forgot Password
- Overview Dashboard — at-a-glance stats: Total Books, Total Users, Total Sales, Revenue
- Purchases Over Time — combined bar + line chart with time-range filtering (All Time, monthly, etc.)
- Top Books — donut chart visualizing the share of top-performing titles
- Top Performing Books Table — ranked by downloads with star ratings
- Book & Category Management — add, edit, and delete books; create and manage genre categories with pagination
- User Management — dual time-series charts for Users Joined and Sellers Joined; searchable Customer List and Seller List with export to CSV
- Sales Management — track platform-wide transaction history
- Settings — platform configuration
- Seller Dashboard — personal stats: Total Books, Total Sales, Today's Sales, Revenue
- Purchase Over Time Chart — individual seller's sales trend with time-range filter
- Top Books Donut Chart — visual breakdown of the seller's own bestsellers
- Seller Book Management — "My Books" table with cover, title, author, category, downloads, and price; Add Book, Edit, Delete, and Export CSV
- Settings — seller profile and store configuration
Book-Store/
├── backend/ # Node.js + Express REST API
│ ├── controllers/ # Route logic (books, users, sellers, orders)
│ ├── models/ # Mongoose schemas
│ ├── routes/ # API route definitions
│ ├── middleware/ # Auth, error handling
│ └── server.js # Entry point
│
├── frontend/ # React + Vite application
│ ├── src/
│ │ ├── pages/ # Route-level pages (Home, Browse, Login, etc.)
│ │ ├── components/ # Reusable UI components
│ │ ├── admin/ # Admin portal pages & components
│ │ ├── seller/ # Seller portal pages & components
│ │ └── App.jsx # Root component & routing
│ └── vite.config.js
│
├── .gitignore
└── README.md
| Role | Portal | Key Capabilities |
|---|---|---|
| Customer | Storefront (/) |
Browse, search, filter, add to cart/wishlist, purchase books |
| Seller / Publisher | Seller Panel | List & manage own books, view personal sales & revenue analytics |
| Admin | Admin Panel | Full platform control — all books, all users, all sellers, categories, sales |
- Node.js
>= 18.x - npm or yarn
- MongoDB (local instance or MongoDB Atlas)
git clone https://github.com/AvisarBhandari/Book-Store.git
cd Book-Storecd backend
npm installCreate a .env file in the backend/ directory:
PORT=5000
MONGO_URI=mongodb://localhost:27017/readverse
JWT_SECRET=your_jwt_secret_hereStart the backend server:
npm run devThe API will run at http://localhost:5000.
Open a new terminal:
cd frontend
npm install
npm run devThe React app will run at http://localhost:5173.
http://localhost:5173 → Customer Storefront
http://localhost:5173/admin → Admin Panel
http://localhost:5173/seller → Seller Portal
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, React Router |
| Styling | CSS Modules / Tailwind CSS |
| Charts | Recharts / Chart.js |
| Backend | Node.js, Express.js |
| Database | MongoDB, Mongoose |
| Auth | JWT (JSON Web Tokens) |
| HTTP Client | Axios |
JavaScript 99.6% ████████████████████
Other 0.4% ░░░░░░░░░░░░░░░░░░░░
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
Register a new user |
POST |
/api/auth/login |
Login and receive JWT |
GET |
/api/books |
Get all books |
GET |
/api/books/:id |
Get a single book |
POST |
/api/books |
Add a new book (Seller/Admin) |
PUT |
/api/books/:id |
Update a book (Seller/Admin) |
DELETE |
/api/books/:id |
Delete a book (Admin) |
GET |
/api/users |
Get all users (Admin) |
GET |
/api/sales |
Get sales analytics (Admin/Seller) |
Avisar Bhandari
- GitHub: @AvisarBhandari
© 2026 ReadVerse — All Rights Reserved