Skip to content

Built from scratch, BookHive is a full-stack MERN application connecting readers with free literature from Project Gutenberg, featuring search, downloads, reviews, and community interaction.

Notifications You must be signed in to change notification settings

zaker-amin/BookHive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BookHive

JavaScript Node.js Express MongoDB React Redux MUI Render License: MIT

BookHive is a full-stack MERN application that connects readers with free books via the Gutendex API.
Users can browse and search for books, download them in different formats, and leave reviews with ratings.

The purpose of making this project was to practice everything I had learned by completing the mandatory portion of the Fullstack open course [https://fullstackopen.com/en].

Live Demo: [https://bookhive-edu.vercel.app/]

screencapture-bookhive-hyx1-onrender-2025-08-22-03_39_54

✨ Features

  • 🔐 Authentication & Authorization

    • User login/signup with JWT.
    • Role-based access (admin & regular users).
  • 📖 Book Discovery

    • Integrated with the Gutendex API.
    • Search and filter books.
    • Direct download links for multiple formats.
  • Community Reviews

    • Star ratings & text reviews.
    • Each review is linked to both the user and the book.
  • 🎨 Responsive UI

    • Built with React, MUI, and custom theming.
    • Dark/light mode support.

🏗 Tech Stack

Frontend

  • React (Vite)
  • Redux Toolkit (state management)
  • Material UI (styling)

Backend

  • Node.js + Express
  • MongoDB + Mongoose
  • JWT for authentication
  • REST API architecture

Other


📂 Project Structure

.
├── backend/             # Express server + MongoDB models
│   ├── src/
│   ├── dist/            # Built frontend production code served by Express
│   └── ...
├── frontend/            # React app (Vite + MUI)
│   └── src/
│   └── ...

⚡ Getting Started (Development)

1. Clone the repo

git clone https://github.com/Zakerous76/BookHive.git
cd BookHive

2. Install dependencies

# Backend
cd backend
npm install

# Frontend
cd ../frontend
npm install

3. Environment variables

Create a .env file in backend/ with:

MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
PORT=5000

4. Run locally

# Backend (from /backend)
npm run dev

# Frontend (from /frontend)
npm run dev

🚀 Deployment (Production)

  • The frontend is built with Vite (npm run build in /frontend).
  • The output is copied into /backend/dist, by running (npm run build:ui) check /backend/package.json.
  • Express serves the static frontend files and also provides the REST API.
  • (In production, The backend (with bundled frontend) is deployed as a single Render web service.)

📌 Future Improvements

  • AI-based book recommendations
  • Better caching for Gutendex results.
  • Social login (Google, GitHub).

📜 License

This project is licensed under the MIT License.


🙌 Acknowledgements

About

Built from scratch, BookHive is a full-stack MERN application connecting readers with free literature from Project Gutenberg, featuring search, downloads, reviews, and community interaction.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published