Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Book Manager - Personal Library & Reading Tracker

A modern, production-grade full-stack web application for organizing your personal book collection, tracking reading milestones, and discovering reading analytics. Built with Next.js 16 (App Router), Context API, Framer Motion, Node.js, Express, and MongoDB.


✨ Features

  • 🎨 OLED Pitch Black & Light Mode: Seamless theme switcher with a true OLED #000000 dark theme and custom glassmorphism.
  • 🖼️ Procedural Book Covers: Dynamic visual book covers with title typography and procedural gradient palettes based on string hashes.
  • 📊 Annual Reading Goal Tracker: Interactive circular progress ring tracking target reading goals (e.g. 5 of 12 books completed).
  • 📖 Reading Progress Bar: Interactive page counter (currentPage / totalPages) displaying animated progress bars for books currently being read.
  • 5-Star Rating System: Rate completed books with interactive star ratings.
  • ❤️ Favorite Pinning: Heart toggle to pin favorite books to the top of your shelf.
  • 🔀 Full-Stack Search, Filter & Sort: Search by title or author, filter by status (Want To Read, Reading, Completed), and sort by Title (A-Z), Author, Highest Rated, or Favorites.
  • 🔗 URL Query Parameter Sync: Search terms, active status tabs, sorting orders, and view modes automatically synchronize with browser URL search parameters for bookmarking & sharing.
  • 🎬 Tactile 3D Micro-Animations: Framer Motion 3D card tilt physics (rotateX, rotateY), skeleton shimmer loading placeholders, and animated toast alert banners.
  • 🔐 Secure Authentication: JWT-based session state with Context API, protected dashboard routing, and real-time password strength indicators.

🛠️ Tech Stack

Frontend

  • Framework: Next.js 16 (App Router)
  • Language: TypeScript
  • Styling: Vanilla CSS Modules (OLED Pitch Black + Custom Design System)
  • State Management: React Context API
  • Animations: Framer Motion & Lucide Icons

Backend

  • Runtime: Node.js & Express.js
  • Database: MongoDB & Mongoose ORM
  • Authentication: JSON Web Tokens (JWT) & bcrypt password hashing
  • Validation: Joi validation schemas

📁 Repository Structure

Book-Manager/
├── frontend/             # Next.js 16 Frontend Application
│   ├── app/              # App Router Pages (/login, /register, /dashboard)
│   ├── context/          # Context API (AuthContext, BookContext)
│   ├── lib/              # API Client & Helper Utilities
│   └── types/            # TypeScript Interface Definitions
├── backend/              # Node.js & Express REST API Server
│   ├── src/
│   │   ├── controller/   # Request Handlers (auth, book)
│   │   ├── model/        # Mongoose Schema Definitions
│   │   ├── route/        # Express API Routes
│   │   └── validator/    # Joi Validation Schemas
│   └── server.js         # Backend Server Entrypoint
├── deployment.md         # Production Deployment Guide
└── README.md             # Project Documentation

🚀 Getting Started Locally

Prerequisites

  • Node.js (v18+)
  • MongoDB Atlas database URI (or local MongoDB server)

1. Clone the Repository

git clone https://github.com/destinykrishna/Book-Manager.git
cd Book-Manager

2. Configure Backend

cd backend
npm install

Create a .env file in the backend/ directory:

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_jwt_key
CLIENT_URL=http://localhost:3001

Start the backend dev server:

npm run dev

3. Configure Frontend

In a new terminal window:

cd frontend
npm install

Create a .env.local file in the frontend/ directory:

NEXT_PUBLIC_API_URL=http://localhost:5000/api

Start the Next.js dev server:

npm run dev

🐳 Running with Docker (1-Command Setup)

Alternatively, launch the full stack (Frontend + Backend + MongoDB) with Docker Compose:

docker-compose up --build

Access the application at http://localhost:3001.


🚢 Deployment

For complete instructions on deploying the frontend to Vercel and the backend to Render / Railway, refer to the Deployment Guide.


📄 License

This project is open source and available under the ISC License.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages