Book Sharing Platform

Web Application

Project Details

Project Information

Project Title: Book Sharing Platform

Category: Web Application

Semester: Fall 2025

Course: CS619

Complexity: Easy

Project Description

Book Sharing Platform

Project Domain / Category

Web Programming

 

Abstract:

 

The Book Sharing Platform is a web-based community application that allows users to share and borrow both physical and digital books. Each registered user can act as both a sharer (when listing books) and a borrower (when requesting books). For physical books, the system not only tracks availability but also provides a simple communication mechanism for users to schedule offline exchanges (date, time, location). For digital books, the system supports uploads/downloads with logical “return” tracking. The project demonstrates essential full-stack concepts: user authentication, CRUD operations, request workflows, and database design using Flask and SQLite.

 

Functional Requirements:

     User Management

 

        Users can register, log in, and manage their profile.

 

        User roles:

 

        Member (default): Can share books and borrow books.

 

        Admin: Can manage all books and users, and remove inappropriate entries.

Book Management

 

        Add new books with details: title, author, category, type (physical/digital).

 

        For physical books: include location/availability notes.

 

        For digital books: upload file (e.g., PDF) or provide a download link.

 

        Edit or delete only books added by the logged-in user.

     Borrowing & Returning Workflow

 

        Members can search/filter books by title, author, or category.

 

        Borrow Request:

 

        Borrower clicks “Request to Borrow”.

 

        A small form appears to propose date, time, and location for exchange.

 

        Request is stored in the database and sent to the owner’s dashboard.

 

        Owner Actions:

 

        View incoming requests.

 

        Accept, reject, or suggest an alternative (edit request fields).

 

        Borrow Confirmation:

 

        Once accepted, system marks book as Borrowed.

 

        Borrow request details (date, time, location) are visible to both users.

 

        Returning:

 

        Physical books: Owner marks as Returned.

 

        Digital books: Borrower clicks Mark as Returned (or system auto-returns after 7 days).

 

        Book status always flows as: Available → Borrowed → Returned.

     User Dashboard

 

  My Books (Shared): Books added by the user + requests from others.

 

 

 

 

Page 34 of 167

 

        Borrowed Books: Books borrowed by the user + scheduled exchange details.

 

     Admin Dashboard

 

            View all listed books.

            Remove duplicate/inappropriate entries.

 

            Manage or block abusive users.

 

How Sharing & Borrowing Works:

 

Physical Books:

 

            Sharing: Member adds details → marked Available.

            Borrowing: Borrower submits request with proposed date, time, and location.

 

            Scheduling: Owner reviews and accepts/rejects/suggests changes.

 

            Exchange: Actual handover offline → system marks book as Borrowed.

            Returning: Owner marks as Returned once the book is received back.

 

Digital Books:

 

            Sharing: Member uploads file or adds download link.

            Borrowing: Borrower clicks Borrow → download allowed, status Borrowed.

 

            Returning: Borrower clicks Mark as Returned (or system auto-returns).

 

Required Tools

 

Frontend

 

1. HTML, CSS, JavaScript (UI, forms, and interactions)

Backend

 

            Flask (Python) – backend framework

 

            SQLite – database

            Flask-Login – authentication/session management

 

            Werkzeug – password hashing

 

            Jinja2 – template rendering

 

Supervisor:

 

Name: Muhammad Ilyas

Email ID: Muhammad.ilyas@vu.edu.pk

 

MS Teams ID: ilyas.vu@outlook.com

Languages

  • HTML, CSS, JavaScript, Python Language

Tools

  • Flask, SQLite, Flask-Login, Werkzeug, Jinja2 Tool

Project Schedules

No schedules available for this project.

Viva Review Submission

Review Information
Supervisor Behavior

Student Viva Reviews

No reviews available for this project.