KNOWLEDGE INSTITUTE OF TECHNOLOGY
(AN AUTONOMOUS INSTITUTION)
Approved by AICTE, New Delhi and Affiliated to Anna University, Chennai
Kakapalayam (PO), Salem - 637 504.
DEPARTMENT
of
COMPUTER SCIENCE AND ENGINEERING
MINI PROJECT
Project Title - E-BOOK MANAGEMENT SYSTEM
Subject Name - Object Oriented Software Engineering
Subject Code - CCS356
Year/Sem/Sec - III/VI/C
Date - 30.04.2025
REGISTER NUMBER TEAM MEMBERS
611222104146 SUBASREE G S
611222104147 SUBATHRA A
611222104148 SUDHARSAN G
611222104149 SURIYA P R
FACULTY SIGNATURE
Aim:
To design and implement an e-Book Management System that allows users to browse, purchase,
read, and manage e-books online efficiently. The system also enables admins to manage the catalog,
users, and transactions securely.
Problem Statement:
The traditional method of accessing books is limited by physical availability, location, and
manual record-keeping. Readers often struggle to find desired books instantly or manage their digital
reading lists. Likewise, publishers or admins lack a centralized system to monitor purchases and user
activity. The objective is to develop an automated, user-friendly e-Book Management System that
provides seamless access to a variety of e-books, enables digital purchases, reading, and maintains a
secure and organized database for administration.
Explanation:
Step 1: Requirements Analysis
Identify key features:
★ User registration and login (authentication system)
★ Browse and search e-books by category, author, or title
★ View book previews or sample pages
★ Purchase/download e-books (with payment gateway integration)
★ Read e-books online via embedded viewer
★ Manage reading list (Add to Wishlist / Favorites)
★ Admin panel for:
● Adding/editing/deleting books
● Managing users and purchases
● Generating reports and analytics
Step 2: System Architecture Design
Use a three-tier architecture:
● Presentation Layer:
User and admin interfaces (web-based or mobile interface using HTML, CSS, JS)
● Application Layer:
Core business logic including book listing, reading access control, cart management, and user roles
● Data Layer:
Database to store users, book details, transactions, reading history, etc.
Step 3: Database Design
Key Tables:
● Users: UserID, Name, Email, Password, Role (Admin/User)
● Books: BookID, Title, Author, Category, Price, FileURL, Description, CoverImage
● Purchases: PurchaseID, UserID, BookID, PurchaseDate, PaymentStatus
● ReadingList: ListID, UserID, BookID, Status (Wishlist, Purchased)
● Admin: AdminID, Name, Email, Password
Step 4: Implementation Plan
Phase 1: Core Features
● User registration/login and authentication
● Book browsing and searching interface
● Admin panel to manage books
Phase 2: Purchase and Reading Module
● Implement e-book preview and purchase system
● Integrate a basic payment simulator or payment gateway
● Enable e-book reading through online reader or downloadable file
Phase 3: Management and Reporting
● Manage user reading lists and history
● Admin dashboard for monitoring sales, users, and book statistics
● Report generation module (most downloaded books, top users, etc.)
USE CASE DIAGRAM:
Coding:
@startuml
left to right direction
skinparam packageStyle rectangle
actor Customer
actor Administrator
actor Seller
rectangle "e-Book Management System" {
(ViewShoppingCart) as UC1
(SearchProduct) as UC2
(AddToCart) as UC3
(SelectCreditCard) as UC4
(PurchaseItem) as UC5
(ReviewOrderDetails) as UC6
(Login) as UC7
(ShippingDetails) as UC8
(ChangeItemDetails) as UC9
(BlockUsers) as UC10
(RegisterItem) as UC11
' Customer interactions
Customer --> UC1
Customer --> UC2
Customer --> UC3
Customer --> UC4
Customer --> UC5
Customer --> UC6
Customer --> UC7
Customer --> UC8
' Administrator interactions
Administrator --> UC9
Administrator --> UC10
' Seller interactions
Seller --> UC11
}
@enduml
CLASS DIAGRAM:
CODING:
@startuml
' Define the main User class
class User {
- emailID: String
- password: String
- firstName: String
- lastName: String
- streetAddress: String
- zipcode: String
- city: String
- state: String
- country: String
- phone: String
+ login(): void
+ registration(): void
+ logout(): void
}
' Customer extends User
class Customer {
- cID: String
- shipName: String
- shipAddress: String
- noOfItems: int
+ payment(): void
+ addCard(): void
+ addToCart(): void
+ cancel(): void
}
' Seller extends User
class Seller {
- ID: String
- itemName: String
- itemID: String
- discount: double
- category: String
}
' CartDetails class
class CartDetails {
- creditNo: String
- itemID: String
- amount: double
- category: String
+ add(): void
+ checkOut(): void
}
' Cancellation class
class Cancellation {
- cID: String
- itemID: String
- amount: double
+ retrieve(): void
+ update(): void
}
' Credit Card Details class
class CCDetails {
- cardNo: String
- issueDate: String
- expiryDate: String
+ verifyDetails(): void
+ performTransac(): void
}
' Transaction class
class Transaction {
- transID: String
- transDate: Date
- amount: double
+ commit(): void
+ rollback(): void
}
' PaymentSystem class
class PaymentSystem {
- custID: String
- custName: String
- billAddress: String
- cardNo: String
+ viewOrder(): void
+ paymentDetails(): void
}
' Relationships
Customer --|> User
Seller --|> User
Customer --> CartDetails
Customer --> CCDetails
Customer --> PaymentSystem
Customer --> Cancellation
CartDetails --> PaymentSystem
Cancellation --> PaymentSystem
CCDetails --> Transaction
PaymentSystem --> Transaction
@enduml
SEQUENCE DIAGRAM:
CODING:
@startuml
actor Customer
participant "LoginService" as Login
participant "SearchEngine" as Search
participant "ShoppingCart" as Cart
participant "ProcessOrder" as Order
participant "PaymentGateway" as Payment
participant "OrderSummary" as Summary
== Login Process ==
Customer -> Login : enterCredentials()
Login -> Login : validateUser()
Login --> Customer : loginSuccess()
== Search and Add to Cart ==
Customer -> Search : searchBook(title/author)
Search -> Search : fetchBookList()
Search --> Customer : displayBooks()
Customer -> Cart : addBookToCart(bookID)
Cart -> Cart : updateCart()
Cart --> Customer : bookAddedConfirmation()
== Review and Checkout ==
Customer -> Cart : viewCartDetails()
Cart -> Cart : retrieveCartItems()
Cart --> Customer : displayCartItems()
Customer -> Order : initiateOrder(cartDetails)
Order -> Order : verifyCartAndStock()
Order -> Order : getShippingDetails()
Order --> Customer : requestShippingInput()
Customer -> Order : provideShippingInfo()
Order -> Payment : initiatePayment(amount, cardDetails)
Payment -> Payment : verifyCard()
Payment --> Order : paymentStatus(success)
Order -> Summary : generateOrderSummary()
Summary -> Summary : prepareInvoice()
Summary --> Order : orderDetails
Order --> Customer : displayOrderSummary()
== Confirm and Logout ==
Customer -> Order : confirmCheckout()
Order -> Order : finalizeOrder()
Order --> Customer : orderConfirmation()
Customer -> Login : logout()
Login --> Customer : logoutSuccess()
@enduml
ACTIVITY DIAGRAM:
CODING:
@startuml
' Diagram Settings
skinparam style strictuml
skinparam activity {
BackgroundColor #FAFAD2
BorderColor Black
ArrowColor Navy
StartColor LimeGreen
EndColor Red
DiamondBackgroundColor #FFFFCC
FontSize 14
FontName "Courier New"
}
' Start node
start
' Initial browsing action
:Browse Books;
:View Book;
' Decision to purchase
if ("User wants to purchase?") then ([Yes])
' Check product availability
if ("Is product available?") then ([Yes])
:View Book Details;
' Membership status check
if ("Is user a registered member?") then ([Yes])
:Login;
else ([No])
:Register Account;
endif
' After login/register
note right: Both login/register must succeed
:Book Added to Cart;
' Ask to continue to checkout or not
if ("Continue to checkout?") then ([Yes])
:Proceed to Payment;
if ("Payment successful?") then ([Yes])
:Order Details Summary;
:Signout;
Stop
else ([No])
:Payment Failed;
:Return to Cart;
Stop
endif
else ([No])
:Stay in Cart;
stop
endif
else ([No])
:Visit FAQ Page;
:Show "Item Not Found";
stop
endif
else ([No])
:Exit Purchase Flow;
stop
endif
@enduml
RESULT:
A fully functional E-Book Management System that allows users to browse, purchase, and
download e-books efficiently. The system ensures fast, secure transactions, improves user experience,
and streamlines digital book management.