An open API service indexing awesome lists of open source software.

https://github.com/kunalbishwal/librora

Librora is a full-stack MERN Book Review Platform
https://github.com/kunalbishwal/librora

full-stack mern-stack programming website

Last synced: 2 days ago
JSON representation

Librora is a full-stack MERN Book Review Platform

Awesome Lists containing this project

README

          

# πŸ“š Librora

**Librora** is a full-stack **MERN Book Review Platform** where users can sign up, log in, add books, and share reviews with ratings.
Built with **MongoDB, Express, React, and Node.js**, Librora focuses on clean UI, smooth animations, and secure authentication β€” giving users a seamless reading and reviewing experience.

---

## πŸš€ Tech Stack

**Frontend:**
- React + TypeScript
- Vite
- Tailwind CSS
- Axios
- React Router
- Framer Motion (animations)
- Lucide Icons

**Backend:**
- Node.js + Express
- MongoDB + Mongoose
- JWT Authentication
- bcrypt Password Hashing
- MVC Architecture

---

## 🎯 Core Features

βœ… **User Authentication** (JWT + bcrypt)
- Signup & Login with encrypted passwords
- Protected routes using JWT middleware

βœ… **Book Management**
- Add, edit, and delete books
- Paginated list (5 books per page)
- Only the book creator can modify/delete their books

βœ… **Review System**
- Add, edit, and delete reviews
- Ratings (1–5 stars) + review text
- Dynamic average rating calculation

βœ… **Search & Filters**
- Search books by title, author, or genre
- Instant search with smooth loading animations

βœ… **Frontend Integration**
- Modern, responsive design
- Context-based auth management
- Debounced search for smoother UX

βœ… **Bonus Features (Optional)**
- Profile Page: View user’s books & reviews
- Charts for rating distribution (Recharts)
- Dark/Light Mode toggle
- Deployed via Render (backend) & Vercel (frontend)

---

## 🧩 Folder Structure
``` bash
Librora/
β”œβ”€β”€ backend/
β”‚ β”œβ”€β”€ controllers/
β”‚ β”œβ”€β”€ middleware/
β”‚ β”œβ”€β”€ models/
β”‚ β”œβ”€β”€ routes/
β”‚ β”œβ”€β”€ utils/
β”‚ β”œβ”€β”€ server.js
β”‚ β”œβ”€β”€ package.json
β”‚ └── .env
β”‚
β”œβ”€β”€ frontend/
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ components/
β”‚ β”‚ β”œβ”€β”€ contexts/
β”‚ β”‚ β”œβ”€β”€ hooks/
β”‚ β”‚ β”œβ”€β”€ pages/
β”‚ β”‚ β”œβ”€β”€ App.tsx
β”‚ β”‚ β”œβ”€β”€ main.tsx
β”‚ β”‚ └── vite-env.d.ts
β”‚ β”œβ”€β”€ public/
β”‚ β”œβ”€β”€ package.json
β”‚ β”œβ”€β”€ tailwind.config.ts
β”‚ β”œβ”€β”€ vite.config.ts
β”‚ └── tsconfig.json
β”‚
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── package.json
```

---

## βš™οΈ Setup Instructions

### πŸ›  Prerequisites
- Node.js (v18+ recommended)
- MongoDB Atlas or local MongoDB instance
- npm or yarn

---

### πŸ“¦ Backend Setup
```bash
cd backend
npm install
```

## .env
- PORT=5000
- MONGO_URI=your_mongodb_atlas_uri
- JWT_SECRET=your_jwt_secret

## πŸ‘¨β€πŸ’» Author

## Kunal Bishwal
- πŸ“ 3rd Year Engineering Student – SRM University
- πŸ’Ό Aspiring Software Engineer | MERN Developer