BookStore4 (2) 1
BookStore4 (2) 1
1: Abstract ...................................................................................................................................................................................................... 3
2. Book store keywords .................................................................................................................................................................................. 4
3. Problem statement ..................................................................................................................................................................................... 4
4. Literature Review........................................................................................................................................................................................ 5
Introduction to Project Models and the Software Development Life Cycle (SDLC) ........................................................................................ 6
6. Requirements and Analysis ........................................................................................................................................................................ 9
8. Use case diagram...................................................................................................................................................................................... 16
9. Sequence Diagram.................................................................................................................................................................................... 17
10. Slack........................................................................................................................................................................................................ 18
11. Github..................................................................................................................................................................................................... 19
12. YouTube.................................................................................................................................................................................................. 20
13. Gantt Chart .............................................................................................................................................................................................. 21
References .................................................................................................................................................................................................... 22
List of Figures
Figure 1(Project Model) 7
Figure 2(Use case diagram) 16
Figure 3(Sequnce Diagram) 17
Figure 4(Slack ScreenShot) 18
Figure 5(Github Account) 19
Figure 6(Youtube Account) 20
Figure 7(Gantt Chart) 21
List Of Tables
Table1(Functional requirements)
Table2(Functional requirements)
1: Abstract
● The project titled "Creating a Book Store Website" is a collaborative effort by team
members Yousf Jawhar Saeed, Mohammad Amin Sleman, and Sahar Hadi Qasim.
The primary objective is to design a captivating homepage that immediately grabs
the attention of visitors, possibly through a slideshow of notable book covers. The
homepage willprominently feature popular titles to entice visitors. Emphasis is
placed on user-friendliness, ensuring ease of navigation and straightforward access
to product categories. Books will be organized by genres such as "Mystery,"
"Romance," and "Science Fiction" for easy browsing. A search functionality will be
incorporated to facilitate users in finding books based on various criteria. Each
product page will have clear titles, detailed descriptions, and high- quality images.
The website will also introduce the bookstore staff with bios and personal
statements. A contact section will provide a form and essential contact details. In
conclusion, the website aims to encapsulate the essenceof reading, highlighting its
magic and urging visitors to delve into the offered selection.
● Keyword: E-Commerce Book Store, Book Store , Library , Online Book Store
2. Problem statement
• "Security concerns among online shoppers have heightened, with many bookstore
websites lacking transparent and robust security measures, potentially deterring
potential buyers."
3. Literature Review
In this chapter, we delve into the evolving landscape of the book-buying experience in the digital era. We aim to
explore how technological advancements have transformed traditional book shopping and identify key areas for
improvement in online bookstore platforms. Our focus will be on analyzing existing research and practices in the field,
followed by proposing enhancements to address identified gaps.
The shift to online bookstores has been a significant development in the book retail industry. We review the key
aspects that have been the focus of research in this domain:
1. User Experience (UX): As highlighted by Chaffey and Ellis-Chadwick (2019), an intuitive interface with efficient
search capabilities and a seamless checkout process is crucial for online bookstores. This ensures a smooth and
enjoyable shopping experience for users.
2. Personalization and Recommendations: Li & Karahanna (2015) emphasize the importance of algorithms that
analyze user behavior to suggest books, thereby enhancing the shopping experience through tailored
recommendations.
3. Digital Integration: The integration of e-books and audiobooks, as discussed by Thompson (2013), caters to the
diverse preferences of readers, making online platforms more inclusive and versatile.
4. Security and Privacy: Ho & Wu (2019) point out the necessity of robust security measures and clear privacy
policies to build trust and ensure the safety of user data in online bookstores.
Before diving into specific methodologies, it's essential to understand what a project model in
software development is and the concept of the Software Development Life Cycle (SDLC). A
project model is a strategic framework that guides the software development process. It
defines the stages through which software passes from conception to completion and
maintenance. The SDLC, on the other hand, is a systematic process used by software
engineers to develop, maintain, replace, and alter software systems in a methodical way.
There are several types of SDLC models, each with its unique approach to software
development. These include:
1. Waterfall Model: A linear and sequential approach where each phase must be
completed before the next begins.
2. V-Model: Similar to Waterfall but with more emphasis on testing.
3. Iterative Model: Development begins by implementing a small set of software
requirements and iteratively enhances the evolving versions until the full system is
implemented.
4. Spiral Model: Combines elements of both design and prototyping in stages, in an effort
to combine advantages of top-down and bottom-up concepts.
5. Agile Model: A highly flexible and interactive model focusing on customer satisfaction
through continuous delivery of functional software.
For our project, we have chosen the Agile model. This decision is based on several factors that
align with our project's needs:
1. Flexibility and Adaptability: Agile allows for changes and modifications throughout
the development process, which is crucial for our project as it may evolve based on
ongoing feedback and changing requirements.
2. Customer Engagement: Agile emphasizes regular communication and collaboration
with stakeholders, ensuring the final product meets customer needs.
3. Risk Management: The iterative nature of Agile allows for frequent reassessment of
the project, reducing potential risks and issues.
4. Efficiency in Handling Complex Projects: Agile is known for its effectiveness in
managing complex projects, which aligns with the nature of our project.
Figure 1(Project Model)
Agile Sub-Models Adopted (Scrum)
Within the Agile framework, there are several methodologies, such as Scrum, Kanban, and
Extreme Programming (XP). Our project has adopted the Scrum methodology due to its
structured yet flexible approach, which is ideal for projects with rapidly changing or highly
emergent requirements.
In comparing Agile to traditional models (like the Waterfall model), it's important to note the
differences:
● Flexibility vs. Rigidity: Agile is more adaptable to changes, whereas traditional models
are more rigid and structured.
● Feedback and Iteration: Agile incorporates continuous feedback and iteration, while
traditional models often defer feedback until the end of the project.
● Risk Management: Agile allows for more frequent risk assessment and management,
reducing the likelihood of project derailment.
● Customer Engagement: Agile involves stakeholders throughout the process, ensuring
alignment with customer needs, unlike traditional models where customer involvement is
typically limited to the beginning and end.
● Time to Market: Agile can provide a working version of the software earlier in the
development process, allowing for quicker deployment.
In conclusion, while both Agile and traditional methodologies have their merits, Agile's
flexibility, emphasis on customer collaboration, and iterative nature make it a more suitable
choice for our project. It's important to select a methodology based on the specific
requirements and context of the project and the organization.
6. Requirements and Analysis
Functional Requirements are the specific behaviors, functions, and features that a system must possess. They define
what the system is supposed to do, detailing the services, tasks, or functions the software must perform. These requirements
are typically action-oriented, and user-specific, and describe interactions between the system and its users or other systems.
Non-Functional Requirements, on the other hand, define the quality attributes or general characteristics of the system.
They are not about specific functionalities but rather about the system's properties, such as performance, security, usability,
and scalability. These requirements ensure that the software system is user-friendly, reliable, efficient, and secure, providing
a framework within which the system operates.
Functional Requirements for a Book Store Website involve specific features that enable users to interact with the website
effectively. This includes user registration, search functionality, displaying book details, managing a shopping cart,
processing payments, and providing order history and tracking. These requirements are centered around the core operations
that users expect when they visit an online bookstore.
Non-Functional Requirements for a Book Store Website focus on the overall user experience and performance of the
website. This encompasses the website's responsiveness to different devices, load times, security measures to protect user
data, scalability to handle varying amounts of traffic, and the overall user interface design. These requirements are essential
for ensuring that the website is not only functional but also reliable, secure, and easy to use.
Functional requirements:
Table1(Functional requirements)
ID Requirement Type
1 Registration
1.1 Users can register through a registration form with a username and password. Mandator
y
1.3 Email Resend Allow users to resend confirmation email if needed Mandator
y
2 Search
2.1 Basic Search Provide a search form for books by title, author, genre, or ISBN. Mandator
y
2.2 Advanced Search Advanced search options with filters and sorting. Desirable
3 Book Details
3.1 Book Details Display book details including cover image, synopsis, author, reviews, and price. Mandator
y
3.2 Sample Pages Option for users to read sample pages. Mandator
y
4.1 Shopping Cart Functionality Users can add and remove books from their shopping cart. Mandator
y
4.2 Cart Review Review and modify cart contents before purchase. Mandator
y
5 Payment Processing
5.1 Payment Processing Secure payment processing with multiple options. Mandator
y
5.2 Save Payment Methods Save payment methods for future purchases. Desirable
6 Order History
6.1 Order History Users can view their order history and current order status. Mandator
y
7 Personalized Recommendations
7.1 Personalized Recommendations Suggest books based on the user's browsing and purchase history. Mandator
y
Non-Functional requirements
Table2(Functional requirements)
ID Requirement Type
1.1 User Interface Design The interface should be intuitive, easy to navigate, and attractively
designed.
2 Load Time
2.2 Traffic Handling Efficient handling of high user traffic, especially during sales.
3 Data Security
3.1 Data Security Strong encryption for user data, especially payment information.
3.2 Cybersecurity Regular security updates and protection against cyber threats.
4 Scalability
4.2 Resource Management Efficient resource management during peak and off-peak hours.
7. Use Case 1: Browsing and Searching for Books
Goal: To find and view details of books they are interested in.
Main Steps:
2. Search for Books: The customer uses the search bar to find books by title, author, or ISBN.
3. Browse Categories: Alternatively, the customer browses through different categories and genres.
4. View Book Details: On selecting a book, the customer views its details, including synopsis, author information,
Extensions/Exceptions:
Main Steps:
1. Select Books: The customer adds chosen books to their shopping cart.
2. Review Cart: The customer reviews their cart, making any adjustments if necessary (like changing
5. Payment: The customer selects a payment method and enters payment details.
6. Confirm Purchase: The customer reviews all details and confirms the purchase.
7. Receive Confirmation: The customer receives an order confirmation and a receipt by email.
Extensions/Exceptions:
Provide an option to save shipping and payment information for future purchases.
4. View Order History: The customer accesses their past orders and tracks current orders.
Extensions/Exceptions:
If the customer forgets their password, provide a secure process to reset it.
Notify the customer of any changes or updates to their account via email.
8. Use case diagram.
This is our Use case diagram for our book store project
Figure 2(Use case diagram)
9. Sequence Diagram
Link:
https://showme.redstarplugin.com/d/d:UbsVfnj6
Design, in the context of software and system development, refers to the process of defining the architecture,
components, interfaces, and other characteristics of a system or component. It is a broad term that encompasses
everything from user interface design to software architecture and database design. The goal of design is to create a
blueprint or a plan for what is to be built, ensuring that the final product meets user needs and is feasible to develop
within constraints like time, budget, and technology.
Wireframe
A wireframe is a low-fidelity way of presenting a design. It's primarily used in the early stages of website or
application design. Wireframes are like the blueprints of a building, but for digital interfaces. They provide a visual
guide that represents the skeletal framework of a website or app. Key characteristics include:
Simplicity: They often consist of simple lines and shapes, representing elements like buttons, images, and text
blocks.
Focus on Functionality: Wireframes are used to layout elements and functionality on a page and demonstrate
how users will interact with the interface.
Lack of Stylistic Elements: They usually lack typographic style, color, or graphics, as the main focus is on
behavior, spacing, and prioritization of content.
An Entity-Relationship Diagram (ERD) is a visual representation of the relationships between entities (such as tables)
in a database. It's an essential part of database design and is used to model the data structures and their interactions.
Key aspects include:
Entities: These are objects or concepts, often corresponding to database tables, that store data. In an ERD,
they are typically represented as rectangles.
Relationships: These illustrate how entities interact with each other. They are usually shown as lines
connecting entities.
Attributes: Details about the entities, represented as ovals connected to their respective entities.
ERDs help in understanding the data requirements and how data elements interrelate, which is crucial for creating a
well-structured and efficient database.
Link: https://app.creately.com/d/Kj9pQ8Loux9/edit
Architecture Diagram
An architecture diagram is a conceptual blueprint that defines the structure and behavior of a system. It provides a
visual representation of the system's components, their relationships, and how they interact with each other. These
diagrams are used in software engineering for planning and conveying the architecture of software systems. Key
features include:
Components: Represent different parts of the system, such as databases, servers, clients, and other processing
units.
Connectors: Show how components interact with each other, such as through APIs, data flows, or message
passing.
Layers: Often, these diagrams are organized in layers, indicating different levels of abstraction or different
responsibilities (e.g., presentation layer, business logic layer, data access layer).
Architecture diagrams are crucial for ensuring that all stakeholders have a common understanding of the system's
structure and can be used to identify potential issues and dependencies early in the development process.
This is our architecture diagram
Link: https://showme.redstarplugin.com/d/d:yzPoWzbM
For the bookstore website, an online, web-based approach is chosen. The primary rationale is accessibility; users can
access the bookstore from any device with internet connectivity, which is crucial for reaching a wider audience.
Additionally, the online model aligns well with the evolving consumer preference for digital platforms for shopping. It
also simplifies the process of updating book inventories and other content without requiring end-user intervention,
ensuring the bookstore always presents current and relevant information.
In this bookstore project, APIs are extensively used. For instance, payment gateway integration is achieved through
APIs provided by service providers like PayPal or Stripe. These APIs handle complex processes like secure payment
processing, transaction authorization, and data encryption, ensuring a safe and smooth transaction experience for
users. Additionally, book information, including summaries, reviews, and ratings, could be fetched from external
sources using APIs, enriching the content on the website without manual data entry.
The "Creating a Book Store Website" project represents a venture into the ever-evolving world of e-commerce
and digital content. As the digital landscape reshapes how consumers interact with content, particularly books,
this project aims to establish an online platform that not only sells books but also creates an immersive and
engaging experience for book lovers. The project's cornerstone is the development of a user-friendly, visually
appealing website that serves as a portal to a vast array of books across various genres.
The website aims to encapsulate the essence of reading and the joy it brings. It will feature an intuitive interface,
easy navigation, and a personalized user experience. From the latest bestsellers to timeless classics, the website
will cater to diverse reader preferences, ensuring every visitor finds something that resonates with their reading
taste. The project is not just about selling books; it's about building a community of readers, fostering a
culture of knowledge and imagination.
10. Slack
This is a screenshot of our YouTube and the link of our YouTube channel.
https://www.youtube.com/channel/UCxeA5DBU4LmnvUXihIxDVeA