Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BookVerse – Community Library Management System

BookVerse is a premium, full-stack web application designed for a group of friends to maintain a shared digital book library. It is built in pure, framework-less PHP using a clean MVC-style architecture and runs on Apache/MySQL (XAMPP). The UI is designed to feel like a high-end SaaS product (inspired by Notion, Stripe, and Linear) with calm typography, clean borders, light/dark themes, and subtle micro-animations.


🚀 Key Features

  • Zero-Config Database Bootstrap: The app automatically detects if the database and tables exist. On the first page load, it creates the database, compiles schema.sql, and executes the seeder.
  • Sample Data Generated: Automatically seeds 10 users and 150 books (with realistic titles, prices, conditions, and random active loans) so the dashboard looks rich and populated right away.
  • Borrowing Workflow: Request Borrow $\rightarrow$ Owner Alert $\rightarrow$ Accept/Reject (with custom notes and expected return dates) $\rightarrow$ Automatic Borrow status updates $\rightarrow$ Returns and permanent history logs.
  • Multi-View Catalog: Toggle instantly between a detailed Grid Card View and a compact Table View (saved to localStorage).
  • Instant Search & Multi-Filters: Real-time filters for genre, author, owner, availability, and owner reading statuses, along with pagination and customizable items-per-page.
  • Analytics Dashboard: Visual charts rendered via Chart.js (Books by Genre, Reading Progress, Monthly Added, and Borrow Activity) that adapt automatically when toggling light/dark themes.
  • User Profiles & Timelines: High-res avatar uploads, stats blocks, user biography editors, personal favorite bookshelves, and scrolling activity logs.
  • Administration Control Panel: Admins can change roles, delete users, audit logs, and forcefully reset borrow statuses on stuck books.
  • Nice Extras:
    • PWA Support: Install BookVerse as an app (manifest & service worker).
    • Export Sheets: Download catalog searches to CSV or Excel.
    • Client-Side QR Code: Generates mobile scan codes on the fly.
    • Print Optimization: @media print styling cleans up book details.
    • Keyboard Shortcuts: / to search, n to add a book, Esc to close modals.

🛠️ Technology Stack

  • Backend: PHP 8+ (Pure MVC, PDO statements, secure sessions, cookie hashes)
  • Database: MySQL (Normalized, indexed schema)
  • Frontend: HTML5, CSS3 (Vanilla CSS variables), Javascript (Vanilla ES6, AJAX endpoints)
  • Design Framework: Bootstrap 5 (Custom CSS overrides)
  • Libraries: Chart.js (CDN), FontAwesome Icons (CDN), QRCode.js (CDN)

📦 Directory Structure

bookverse/
├── assets/                     # Styles, scripts, and placeholder SVGs
├── uploads/                    # Upload directories for book covers and avatars
├── config/                     # Database setup and routing engine
├── database/                   # Seed file populator
├── controllers/                # App controllers (Auth, Book, Borrow, etc.)
├── models/                     # Database query models
├── views/                      # HTML views split into layouts and folders
├── includes/                   # CSRF tokens, session control, helpers
├── sql/                        # SQL schema declarations
├── tests/                      # Testing script suite
├── index.php                   # Entry front controller
└── README.md                   # Installation guide

💻 Installation & Setup

BookVerse runs out of the box on XAMPP.

  1. Move to htdocs: Clone or copy the bookverse directory into your XAMPP installation's htdocs directory:
    C:\xampp\htdocs\bookverse
  2. Start Services: Open the XAMPP Control Panel and click Start next to Apache and MySQL.
  3. Run in Browser: Open your browser and navigate to:
    http://localhost/bookverse/
    
    Note: The application will automatically create the database bookverse, set up the tables, and seed the sample data. No manual SQL import is necessary!

🔑 Login Credentials

The seeder creates 10 pre-registered accounts for testing. All passwords are set to the username + 123.

🛡️ Administrator Account

  • Username: admin
  • Password: admin123

👤 Member Accounts

  • Rahul: rahul / rahul123
  • Subhajit: subhajit / subhajit123
  • Priya: priya / priya123
  • Sneha: sneha / sneha123
  • Amit: amit / amit123
  • Vikram: vikram / vikram123
  • Neha: neha / neha123
  • Rohit: rohit / rohit123
  • Kabir: kabir / kabir123

⌨️ Keyboard Shortcuts

  • Press / anywhere to focus and select the catalog search input.
  • Press n or N to jump to the Add Book form screen.
  • Press Escape to instantly close any active modals.

About

a digital community library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages