Final Synopsis Sem 3
Final Synopsis Sem 3
Submitted by:
Name: Raunak Kumar University Roll No: 1102838
1
CANDIDATES DECLARATION
I/we hereby certify that the work which is being presented in the Synopsis entitled “Full
Stack Development” in partial fulfillment of the requirements for the award of the Degree
of Master of Computer Applications in the Department of Computer Applications of the
Graphic Era (Deemed to be University), Dehradun shall be carried out by the undersigned
under the supervision of Mohd Shuaib (Associate Proffesor), Department of Computer
Applications, Graphic Era (Deemed to be University), Dehradun.
The above mentioned students shall be working under the supervision of the undersigned on
the “Full Stack Development”
Signature Signature
Supervisor Head of the Department
2
Table of Contents
Chapter 3 Objectives 10 to 11
Chapter 6 References 18
3
Chapter 1
Introduction
In today’s digital era, bookstores are no longer limited to physical spaces. With the rapid growth of
e-commerce, online bookstores have become an essential platform for both readers and publishers.
An Online Bookstore Management System offers a convenient way for users to browse, search,
and purchase books from the comfort of their homes. It allows them to explore various genres,
authors, and categories without the limitations of geographical boundaries or store hours. This
project aims to develop a web-based application that not only provides users with an interactive
shopping experience but also empowers administrators to efficiently manage books, users, and
orders.
The Online Bookstore System is a full-stack web application that integrates modern technologies
to create a seamless and efficient environment for both users and administrators. Users can easily
register or log in to their accounts, search for books, add them to their shopping cart, and place
orders. On the other hand, administrators have access to a specialized dashboard where they can
perform CRUD operations (Create, Read, Update, Delete) on books, monitor user activity, and
view sales analytics. This system bridges the gap between traditional book retail and the
convenience of online shopping.
The frontend of the application will be built using React.js, a popular JavaScript library known for
its component-based architecture and fast rendering. React Router will be used to handle the
navigation between different pages, ensuring a smooth user experience. For the backend, Node.js
and Express.js will be employed to create a robust server capable of processing API requests
efficiently. The backend will interact with a MongoDB database (or alternatively MySQL), where
all the necessary data – such as books, users, and orders – will be stored.
4
One of the key features of this project is user authentication and authorization. JWT (JSON Web
Tokens) will be implemented to ensure secure access to the system, differentiating between regular
users and admin roles. This will allow the system to restrict certain functionalities, like managing
inventory, only to authorized administrators. Additionally, the application aims to provide a
responsive user interface that works across devices, ensuring an optimal experience on both
desktops and mobile phones.
Developing this project will offer several learning opportunities. It involves working with RESTful
APIs, state management in React, handling asynchronous operations in Node.js, and interacting
with databases. Furthermore, by adopting best practices in software development, such as version
control with Git and testing with Postman, developers will gain hands-on experience in building
scalable and maintainable web applications.
In summary, the Online Bookstore Management System seeks to provide an end-to-end solution
for managing book sales online. With features like secure user authentication, efficient book
management, and an easy-to-use interface, this project addresses both the user’s and the admin’s
needs. It not only enhances the reading experience for book lovers but also simplifies the
management of book inventories for sellers. The project offers a comprehensive learning
experience in full-stack development, combining modern frontend and backend technologies with
database management and security principles.
\
In the traditional model, purchasing and managing books is often time-consuming and limited by
geographical constraints. Physical bookstores require customers to visit in person, which can be
inconvenient, especially for those with busy schedules or limited access to bookstores.
Additionally, physical stores may have a restricted selection of books due to space constraints,
making it difficult for readers to find specific titles or explore niche genres. Sellers, too, face
challenges in managing their inventory, tracking sales, and engaging with customers effectively.
The absence of an online platform limits the ability to provide personalized recommendations,
5
quick search functionality, and seamless order management. Furthermore, without an efficient
management system, tasks like updating stock, processing orders, and monitoring sales reports
become labor-intensive for administrators. Users also lack features like account history, easy book
browsing, and cart management that improve the shopping experience.
Thus, there is a need for a comprehensive online bookstore platform that offers:
This project addresses these challenges by developing an Online Bookstore Management System,
providing a digital solution for both customers and administrators to streamline book purchasing
and inventory management processes.
6
Chapter 2
A review of academic literature reveals several studies that focus on the key elements of
e-commerce systems:
8
Industry studies emphasize the need for secure payment systems in e-commerce
applications. While this project’s initial scope may not include payment gateway
integration, future enhancements could leverage APIs from providers like Razorpay,
PayPal, or Stripe to enable secure transactions.
While several bookstore management systems exist, there are gaps in seamless
integration, scalability, and personalization features in many academic and open-source
projects. This project aims to fill those gaps by developing a full-stack bookstore system
with a focus on:
1. User Experience:
Creating a responsive and interactive interface using React.js.
Implementing smooth navigation with React Router.
2. Backend Efficiency:
Developing a scalable backend using Node.js and Express.js.
Ensuring efficient data handling and retrieval using MongoDB/MySQL.
9
Chapter 3
Objectives
The primary objective of the Online Bookstore Management System is to design and develop a
full-stack web application that provides users with a seamless platform for browsing, purchasing,
and managing books. The system will also include an administrative interface for effective
inventory management. Below are the specific objectives:
10
Ensure role-based access to restrict sensitive features (e.g., book management only accessible to
admins).
Protect user data with encryption techniques and adhere to security best practices for web
applications.
These objectives collectively aim to build a complete, scalable, and secure bookstore platform,
ensuring an enhanced experience for both users and administrators.
11
Chapter 4
The project involves multiple technologies across the frontend, backend, database, and version
control. Below are the essential software tools and frameworks:
1. Operating System:
Windows 10/11
macOS or Linux (Ubuntu or similar)
Cross-platform compatibility using Docker (Optional)
2. Frontend Technologies:
3. Backend Technologies:
12
Node.js: To create the server and manage API requests
Express.js: A web framework for building RESTful APIs
JWT (JSON Web Token): For secure user authentication
4. Database Technologies:
MongoDB (NoSQL): For storing books, users, and orders (recommended for scalability)
MySQL (Relational Database): As an alternative option if structured relational data is preferred
5. Development Tools:
Visual Studio Code (VSCode): Integrated Development Environment (IDE) for coding
Postman: For testing APIs and ensuring proper backend communication
Git: Version control to track code changes
GitHub / GitLab: For repository management and collaboration
6. Security Tools:
Jest / Mocha: For writing and running unit tests (frontend and backend)
13
Chapter 5
Possible Approach/ Algorithms
React.js is used to create an interactive, user-friendly interface. Users can browse books,
search by categories, and view detailed descriptions.
React Router helps manage routing between pages such as Home, Book Details, Cart,
Checkout, Login, and Admin Dashboard.
Axios/Fetch API is used to send API requests to the backend for retrieving and sending
data.
Node.js with Express.js is used to handle API requests from the frontend. The backend
processes these requests, retrieves data from the database, and sends appropriate
responses.
The backend also manages user authentication using JWT tokens to ensure secure
access.
MongoDB or MySQL stores data related to books, users, orders, and inventory. The
backend interacts with the database using Mongoose (for MongoDB) or Sequelize (for
MySQL) to perform CRUD operations (Create, Read, Update, Delete).
14
The admin dashboard allows administrators to add, edit, or delete books, and monitor
stock levels in real-time.
Users are required to log in using valid credentials. JWT tokens are generated upon
successful login, allowing secure session management.
Role-based access control ensures that only administrators have access to book
management and user control functionalities.
Users can add books to their cart, which is managed on the client side using state
management (like React’s useState or Redux).
When users proceed to checkout, the backend verifies the order and updates the database
to reflect inventory changes.
15
Send an error message to the frontend.
6. On every request to a protected route, the frontend sends the JWT token in the headers
for verification.
7. Backend verifies the token and allows or denies access based on its validity.
Input: Search query (e.g., book title or author) and filters (e.g., genre, price range)
Output: List of books matching the query and filters
Steps:
1. User enters a search query or selects filter options on the frontend.
2. Frontend sends a GET request to the backend with the search query and filters.
3. Backend receives the query and performs a database search (using MongoDB’s $regex
or MySQL’s LIKE operator).
4. Filter results by genre, price range, or author if applicable.
5. Send the filtered list of books to the frontend.
6. Display the results on the frontend in a user-friendly format.
17
References
18