Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Shopping Kart - Ecommerce Project (FYP)

Shopping Kart - Ecommerce Project (FYP)

Shopping Kart is a website where people can come and buy the things they like and seller can sell their products. The website will contain all the crucial elements that an ecommerce website should have from UserLogin, Add to Cart, Order etc. My purpose of the project will be to learn about full stack development using MERN stack which is the most favorite of full stack developers. My aim will be to learn these new technologies and databases once at a time and to master them by implementing them on my project. I
am planning to start by first learning Javascript and then go for Node JS, Express JS, React JS and learn about MongoDB too continuously as the need of the project. The drawback of the existing model is that there are many complications as a customer has to go to different websites to find the product that they want. The problem statement is to build a website which will contain a-z products which will fulfill everyone's needs and no will have to go through multiple websites to find the product that they want. This website
will be a one stop shop for their every need for their daily needs to luxurious item. And this is how I am going to find a solution to this problem.

Viraj Parab

July 13, 2023
Tweet

More Decks by Viraj Parab

Other Decks in Technology

Transcript

  1. PROFORMA FOR THE APPROVAL PROJECT PROPOSAL (Note: All entries of

    the proforma of approval should be filled up with appropriate and complete information. Incomplete proforma of approval in any respect will be summarily rejected.) PNR No.: 2020016400833711 Roll no: 863 1. Name of the Student VIRAJ PRAMOD PARAB 2. Title of the Project SHOPPING KART 3. Name of the Guide MRS.JAYACHITRA NADAR 4. Teaching experience of the Guide 5. Is this your first submission? Yes No Signature of the Student Signature of the Guide Date: ………………… Date: ……………………. Signature of the Coordinator Date: ………………
  2. SHOPPING KART A Project Report Submitted in partial fulfillment of

    the Requirements for the award of the Degree of BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY) By VIRAJ PRAMOD PARAB ROLL .NO : B863 Under the esteemed guidance of Mrs. JAYACHITRA NADAR DEPARTMENT OF INFORMATION TECHNOLOGY CHIKITSAK SAMUHA’S S.S & L.S PATKAR COLLEGE OF ARTS & SCIENCE & V. P. VARDE COLLEGE OF COMMERCE & ECONOMICS. An Autonomous College Affiliated To University Of Mumbai Goregaon (W), Mumbai – 400 062
  3. CHIKITSAK SAMUHA’S S.S & L.S PATKAR COLLEGE OF ARTS &

    SCIENCE & V. P. VARDE COLLEGE OF COMMERCE & ECONOMICS. An Autonomous College DEPARTMENT OF INFORMATION TECHNOLOGY CERTIFICATE This is to certify that the project entitled, "Shopping Kart", is bonafide work of Viraj Pramod Parab bearing Seat.No: submitted in partial fulfillment of the requirements for the award of degree of BACHELOR OF SCIENCE in INFORMATION TECHNOLOGY from University of Mumbai. Internal Guide Coordinator External Examiner Date: CollegeSeal
  4. COMPANY CERTIFICATE (ONLY FOR LIVE PROJECTS) IF APPLICABLE T.Y.B.Sc Information

    Technology Semester VI Viraj Parab Roll No : 863 4 | Page
  5. ABSTRACT Shopping Kart is a website where people can come

    and buy the things they like and seller can sell their products. The website will contain all the crucial elements that an ecommerce website should have from UserLogin, Add to Cart, Order etc. My purpose of the project will be to learn about full stack development using MERN stack which is the most favorite of full stack developers. My aim will be to learn these new technologies and databases once at a time and to master them by implementing them on my project. I am planning to start by first learning Javascript and then go for Node JS, Express JS, React JS and learn about MongoDB too continuously as the need of the project. The drawback of the existing model is that there are many complications as a customer has to go to different websites to find the product that they want. The problem statement is to build a website which will contain a-z products which will fulfill everyone's needs and no will have to go through multiple websites to find the product that they want. This website will be a one stop shop for their every need for their daily needs to luxurious item. And this is how I am going to find a solution to this problem. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 5 | Page
  6. ACKNOWLEDGEMENT I would first like to thank God and my

    parents for giving me this wonderful life. I would like to thank Dr. Mala P.Kharkar (CEO), Co-ordinator Mrs. Namrata Kawale, Chief Co-ordinator Mrs. Ruchita Rane and Principal Pratibha Gaikwad of Patkar Varde College for letting me do this project. I would also like to thank my guide Mrs. Jayachitra Nadar for her immense support in the making of this project. I would like to thank all faculties of my college too for their teachings because of which I am able to do this project. Lastly I would also like to thank all of my friends who contributed to the making of this project. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 6 | Page
  7. DECLARATION I hereby declare that the project entitled, “Shopping Kart”

    done at Patkar Varde College, has not been in any case duplicated to submit to any other university for the award of any degree. To the best of my knowledge other than me, no one has submitted to any other university. The project is done in partial fulfillment of the requirements for the award of degree of BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY) to be submitted as a final semester project as part of our curriculum. Name and Signature of the Student Date : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 7 | Page
  8. TABLE OF CONTENTS ⮚ Chapter 1 Introduction.......................................................................................... 11 - Theoretical

    Background - Objectives of the Project - Purpose, Scope and Applicability of the Project - Expected Achievements - Organization of Report ⮚ Chapter 2 Survey of Technologies.……………………………………………..…14 - Description of Available Technologies - Comparative Analysis of Technologies in Chosen Area - Chosen Project Domain - Technologies to be used - Reason Supporting the use of above selected technologies ⮚ Chapter 3 Requirements & Analysis……………………………………………...17 - Problem Statement & Definition - Requirements Specification - Feasibility - Planning and Scheduling - Preliminary Product Description - Conceptual Model ⮚ Chapter 4 System Design………………………………………………………… .31 - Basic Modules - Data Design - Procedural Design - User Interface Design - Security Issues - Dataset ➢ Chapter 5 Implementation and Testing………………………………………….38 - Implementation Approaches - Coding Details and Code Efficiency - Testing Approach - Test Cases T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 8 | Page
  9. - Modification and Expected Improvements ➢ Chapter 6 Results and

    Discussions……….…………………………..……………59 - Test Reports - User Documentation - Cost Estimation ➢ Chapter 7 Conclusions………………………………………………..……..………69 - Conclusion - Limitations - Future Scope of the Project ⮚ References………...…………………………………………………..………………73 T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 9 | Page
  10. LIST OF TABLES Table 1.1 Comparative analysis of MERN and

    MEAN Stack………………………………..…….15 Table 1.2 Comparative analysis of MongoDB and MySQL...………………………………..…….15 T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 10 | Page
  11. LIST OF FIGURES Fig 3.1 : Gantt Chart...………………………………..……....………………………………..…….22 Fig 3.2

    : Pert Chart...………………………………..……....………………………………..……..23 Fig 3.3 : Iterative and Incremental Process...………………………………..……....……………...24 Fig 3.4 : Use Case Diagram...………………………………..……....…………………...…………26 Fig 3.5 : Activity Diagram...………………………………..……....……………………………….27 Fig 3.6 : Class Diagram...………………………………..……....………………………………….28 Fig 3.7 : Sequence Diagram...………………………………..……....……………………………..29 Fig 3.8 : ER Diagram...………………………………..……....………………………………..…..30 Fig 3.9 : Data Flow Diagram...………………………………..……....……………………………31 Fig 4.1 : Schema Design...………………………………..……....………………………………...32 Fig 4.2 : Logic Diagram...………………………………..……....………………………...…….…35 Fig 4.3 : UI Design...………………………………..……....………………………………..…….36 T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 11 | Page
  12. 1. Theoretical Background During pandemic, everyone were locked inside of

    their house, and buying essential item was also very hard for many people as most of the shops too were closed. In such case, online shopping could help a lot. The drawback of the existing model is that there are many complications as a customer has to go to different websites to find the product that they want. The problem statement is to build a website which will contain a-z products which will fulfill everyone's needs and no will have to go through multiple websites to find the product that they want. This website will be a one stop shop for their every need for their daily needs to luxurious item. 2. Objectives of the Project • To learn new technologies and implement them in the project • To give people luxury to buy anything from anywhere • To help them save time and give them variety to choose from and not to compromise on anything. • To help sellers so that they will be able to sell in all parts of the world thus enabling them to reach a larger audience. • To lower set-up costs & running costs than an offline shop. 3. Purpose, Scope & Applicability of the Project a. Purpose • To help sellers build business at lower starting & running costs. • To help build an easily scalable business. • To help sellers operate their business anywhere and at any time. • To remove geographical barriers for both sellers and customers. • A 24*7 open shops for everyone. b. Scope • The user should have an internet connection. • An electronic device and a browser. • Accessible for everyone around the globe on the internet. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 13 | Page
  13. c. Applicability • Lower Starting & Running Cost for Businesses

    • More options for Customers to choose from. • Removes Geographical barriers for both seller & the customer. • Great scalability for business and can be operated from everywhere. 4. Expected Achievements 1. To learn deeply about MERN Stack and implement it all in the project. 2. To build a very highly scalable website. 3. To build a very easy to use child-friendly website, easy to understand for everyone. 4. To make a fully functional and error free website. 5. Organisation of Report Chapter 1, describes why we chose to do this project. It explains project background, objectives and its possibility to succeed and expected goals from this project. Chapter 2, briefly describes the possible technologies that could be used, comparison between them, final selection of technology for project and reasons to support that technology Chapter 3, states problem definition, requirements specifications and feasibility study of this project. Planning and Scheduling is explained with the help of Gantt Chart and Pert Chart. We have also discussed conceptual models such as Use-Case, Activity, Data-Flow, Class, E-R and Sequence diagrams. Chapter 4, explains our project with help of a logic diagram. Its basic modules, UI architecture and finally discusses security issues that can be faced and provide possible solutions. Chapter 5, provides you step-by-step instructions on how to complete a project, as well as coding details and code efficiency. We've also described our testing approach and the necessary test cases, as well as the necessary modifications and expected improvements. Chapter 6, summarizes the test, provides a user manual and cost estimation of our project. Chapter 7, concludes our project and defines its limitations as well as its future scope. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 14 | Page
  14. 1. Description of Available Technologies There are 2 stacks which

    are very famous and used by most of the developers which are : MERN : MongoDB for Database, Express and Node for the middle(application) tier. React for the frontend. MEAN : MongoDB for Database, Express and Node for the middle(application) tier. Angular for the frontend. 2. Comparative Analysis of Technologies in Chosen Area Comparative analysis of MERN and Mean Stack : PARAMETERS MERN Stack MEAN Stack Performance Faster Slower Security Medium High Features High Level Low level Scalability High Medium Architecture Component-based Component-based Table 2.1 Comparative analysis of MERN and MEAN Stack Comparative analysis of MongoDB and MySQL : Features MongoDB MySQL Rich Data Model Yes No Dynamic Schema Yes No Complex Transactions No Yes Typed Data Yes Yes Auditing Yes Yes Auto-Sharding Yes No T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 16 | Page
  15. Table 1.2 Comparative analysis of MongoDB and MySQL 3. Chosen

    Project Domain Full Stack Web Development 4. Technologies to be used a. Front End React JS, CSS, HTML b. Back End Node JS, Express JS, MongoDB c. Framework No framework currently used in the project. d. Other Development Tools No development tool currently used in the project. 5. Reason Supporting the use of above selected technologies 1. I am choosing MERN Stack cause it makes the development process much smoother and easier. 2. It is much easier to learn and is more in demand currently. 3. It has high level features and is highly scalable compared to MEAN Stack. 4. It has a component-based architecture. 5. It has faster performance. 6. It helps to code faster and facilitates smoother UI rendering. 7. It offers very good documentation. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 17 | Page
  16. 1. Problem Statement and Problem Definition To bring all the

    business to one place and give them a variety of options to choose from. To let businesses reach a greater audience and give small businesses a chance to start their business online at a lower cost compared to opening and operating a traditional shop and flourish and expand their businesses easily. During the pandemic, there was a house curfew which made it difficult for many people to buy even basic necessities like groceries etc. Online shopping can play a vital role in such conditions and give the user the comfort of a product being delivered to their doorstep without them going out and buying from various shops and selecting the product that best fit their need and at the lowest cost. ECommerce website SHOPPING KART solves all these problems. 2. Requirements Specification What is requirement analysis? The requirements should be documented, actionable, measurable, testable, traceable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design. a. Functional Requirements In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a specification of behavior between outputs and inputs. Functional requirements are as follows : • User will be able to create a account • Their data will be stored so the next time they come they don’t have to do the same action again • They will be able to shop and add the products to the cart. • And then purchase it. • And will be able to keep track of the product that they have purchased. b. Non-functional Requirements In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. They are contrasted with functional requirements that define specific behavior of functions. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 19 | Page
  17. Non-functional requirements are as follows : • Compatibility : The

    website will be compatible on all platform for eg : android, laptop etc • Reliability : The website will be fully reliable as the user’s data will be safe with us. • Availability : The website will be available to anyone around the globe who has access to the internet. • Security : The website will be completely secure with no loopholes or data leakage. c. User Requirements What is the user requirement? User Requirements as the name implies defines what the component, equipment, system or process is expected to do in the eyes of the user. User requirements are as follows : • Access to the internet • A smart device which has the facility of internet connectivity. • Agree to the rules and regulations of the policy of the website. d. Hardware Requirements What are hardware requirements? The hardware requirements are the requirements of a hardware device. Most hardware only has operating system requirements or compatibility. Hardware requirements are as follows : • Laptop, • 4 GB RAM • 128 GB SSD e. Software Requirements What are software requirements? Software requirements for a system are the description of what the system should do, the service or services that it provides and the constraints on its operation. Software requirements are as follows : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 20 | Page
  18. • Visual Studio Code 3. Feasibility A well-designed feasibility study

    should provide a historical background of the business or project, a description of the product or service, accounting statements, details of the operations and management, marketing research and policies, financial data, legal requirements and tax obligations. Generally, feasibility studies precede technical development and project implementation. a. Operational Feasibility It explains how well the proposed project solves the problem, how it takes into account the advantages and how it satisfies the requirements specified. • Affordability : The website will be completely free for the user to access. Even the business will have to pay only a small amount of fee which is negligible when compared to starting a new business offline • Scalability : The website will be fully scalable and business will be able to expand their business to a higher limit without running on any error. • Sustainability : The website will be sustainable for the future as updates will be made continuously as and when required. b. Technical Feasibility The technical feasibility assessment is focused on gaining an understanding of the present technical resources of the organization and their applicability to the expected needs of the proposed system. • First to learn how MongoDB works as that is the database or the core of the project • Then ReactJS as that is the frontend of the project. • And finally Node & Express JS which is the backend or the logic part of the project. • All of the learning of various components mentioned above will be simultaneous. c. Economic Feasibility The purpose of an economic feasibility study (EFS) is to demonstrate the net benefit of a proposed project for accepting or disbursing electronic funds/benefits, taking into T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 21 | Page
  19. consideration the benefits and costs to the agency, other state

    agencies, and the general public as a whole. • I am going to use the Visual Studio Code Community version which is available for free on the internet. • And then the project will be deployed mostly on Heroku which is again free to some extent. • And lastly the cost is of laptop and monthly wifi charges. 4. Planning and Scheduling What is planning? Project planning is an organized and integrated management process, which focuses on activities required for successful completion of the project. What is scheduling? Project-task scheduling is a significant project planning activity. It comprises deciding which functions would be taken up when. a. Gantt Chart Fig 3.1 Gantt Chart b. Pert Chart T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 22 | Page
  20. Fig 3.2 Pert Chart 5. Preliminary Product Description Preliminary product

    description helps in identifying the requirements and the objectives of the new proposed product/project/system. It helps in defining the functions and associated activities or operations of the proposed product/project/system. The objective is to bring all kinds of business, big, small or middle size and give users the variety and the comfort to shop easily and get the most benefit. To give small businesses a chance to flourish by helping them reach out to a larger audience. There are very requirements for the creation of the project such as visual studio code, internet connection and a good laptop. The user requirements are low as well as the website will be compatible with most of the widely used browsers. 6. Conceptual Model a. Process Model Process models are processes of the same nature that are classified together into a model. Thus, a process model is a description of a process at the type level. One possible use of a T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 23 | Page
  21. process model is to prescribe how things must/should/could be done

    in contrast to the process itself which is really what happens. Proposed Process Model • Iterative and Incremental Model • Iterative and incremental development is a process that combines the iterative design method with the incremental build model. • Fig 3.3 Iterative and Incremental Process • Reasons for choosing this process model : Fits best for my project because it is flexible. And starts relatively slow and is quite smooth paced. Not overwhelming. Changes can be made frequently • Application of chosen process model : Used in software development projects Use in hardware and embedded systems Used in relatively larger software projects and in bigger team projects. • Advantages of chosen process model : Clients get significant functionality faster. Initial item delivery is quicker. You can create organized prerequisites first. • Disadvantages of chosen process model : Absolute expense of the total framework isn’t lower. Requires successful arranging of cycles. Very characterized module interfaces are needed T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 24 | Page
  22. b. The goals of a process model are to be:

    a. Descriptive We start relatively small and make changes during each cycle incrementally. Project is started with a comparatively small task or component and increments are made in each cycle of the iterations until desired product is reached. b. Prescriptive Iteration includes update and execution of cycles to be basic, direct, and particular, supporting overhaul at that stage or as an errand added to task control list.During this process, developers have advantage of evaluating and testing components at each stage and gaining information that would be useful at end stages as well. c. Explanatory As development is incremental and iterative, different functions are applied in different phases. According to prerequisites of organization, at each phase, functionalities are implemented. There are four phases in IID : 1. Inception – In this phase reorganization of project scope, prerequisites, and risks at an elevated level yet in enough detail that work can be assessed are done. 2. Elaboration – In this phase, conveying a working structure that mitigates top dangers and satisfies non-functional necessities is done. 3. Construction – In this phase, functionalities are incremented gradually with codes for functional requirements. Whole architecture is built in this phase. 4. Transition – In this phase, the project is transitioned into production and then deployment. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 25 | Page
  23. c. Diagrams to be included in the design phase are

    as follows: 1. Use case diagram Fig 3.4 : Use Case Diagram T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 26 | Page
  24. 2. Activity diagram Fig 3.5 : Activity Diagram T.Y.B.Sc Information

    Technology Semester VI Viraj Parab Roll No : 863 27 | Page
  25. 3. Class diagram Fig 3.6 : Class Diagram T.Y.B.Sc Information

    Technology Semester VI Viraj Parab Roll No : 863 28 | Page
  26. 4. Sequence diagram Fig 3.7 : Sequence Diagram T.Y.B.Sc Information

    Technology Semester VI Viraj Parab Roll No : 863 29 | Page
  27. 5. E-R model Fig 3.8 : ER Diagram T.Y.B.Sc Information

    Technology Semester VI Viraj Parab Roll No : 863 30 | Page
  28. 6. Data Flow Diagram Fig 3.9 : Data Flow Diagram

    T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 31 | Page
  29. 1. Basic Modules i. Order Module. ii. Product Module. iii.

    user Module. a. Description of Desired Modules 1. Order Module : Contains OrderInfo which will contain data of address, orderItems,User. orderID , status , date, phone number price of item and along with quantity. 2. Product Module : Contains information of product and the reviews of the customer. ProductInfo will contain basic information such as name, price, imageURL, description. 3. User Module : Contains information about the user such as name, username, password, isAdmin b. Description of Desired Features With the AddtoCart feature , users will be able to add all the products that they want to buy at one time. The user will be able to login on the website using their google account. There will also be able to ask help using the 24*7 available chatbots. There may be a possibility of adding payment integration with RazorPay, Spring, Paypal etc if possible. 2. Data Design In the design phase, the requirements will be broken down further to be able to forecast the project’s timeline and estimate the level of effort and amount of resources needed. Design is a very important phase and is a multi-step process which represents structure, program, interface characteristics and procedural details. The proposed system is designed using the design models such as functional decomposition diagrams, data flow diagrams, entity relationship diagrams or any unified modeling language diagrams. The design phase includes all the diagrams which provide an outline of how the application would look. I. Schema Design T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 33 | Page
  30. Fig 4.1 : Schema Design II. Data Integrity and Constraints

    ◦ Integrity : Integrated using MongoDB and deployment will be done using Heroku most probably. Data will be secure with us. Passwords will be stored using Hashmap so users can be tension free. ◦ Constraints : Some Constraints will be that the passwords should be of at least 8 characters, contain capital letters, a number and an alphanumeric letter. Name should be only 5 characters long and shouldn’t contain a number or an alphanumeric character. EmailID should have @ and .com as compulsory. 3. Procedural Design I. Logic Diagram T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 34 | Page
  31. Fig 4.2 : Logic Diagram II. Data Structures ◦ String

    to store User information such as name,username, etc. ◦ Hashmap for storing password of the users. III. Algorithm design ◦ Binary Search Algorithm ◦ STEPS : ◦ Begin with the mid element of the whole array as a search key. ◦ If the value of the search key is equal to the item then return an index of the search key. ◦ Or if the value of the search key is less than the item in the middle of the interval, narrow the interval to the lower half. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 35 | Page
  32. ◦ Otherwise, narrow it to the upper half. ◦ Repeatedly

    check from the second point until the value is found or the interval is empty. ◦ APPLICATION : ◦ A binary search algorithm makes use of the ordering of a list. Thus, it is best to find a PRODUCT from a sorted PRODUCT list. 4. User Interface Design I. The UI will be very friendly and can be used and understood by people of all pages no matter how much their knowledge of software is. II. The business role will have an extra option of Product where they will be able to see the orders that they have received. III. Users will be able to see how far their product has reached if it has been shipped, delivered etc. And they will be able to see all the products that they have added to cart in the Cart Section. IV. Business owners will be able to change the phase of the product as shipped, delivered etc . Fig 4.3 : UI Design 5. Security Issues I. Passwords may leak. II. So for that i plan to use Hashmap data structure for storing the password for more security. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 36 | Page
  33. III. As of now there are no security issues but

    in future if they are in the production phase I plan to solve them using an iterative and incremental process. IV. And also if there are any errors in the testing phase I plan to solve them in the later half of December. 6. Dataset - only for AI oriented projects As of now there are no dataset being used in the current phase of the project. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 37 | Page
  34. 1. Implementation Approaches a. Define the implementation plan As my

    project is done on Visual Studio Code, I installed the latest version of it compatible with my laptop. After which I installed the necessary libraries and software required for my project. To build the frontend of the website, I took a look at many of the already existing ecommerce websites and projects related to it on Github. Once the coding was completed, I ran my project on localhost, to see if every function on the website was working correctly. Once everything was running smoothly, I deployed my project on Onrender and started testing for the project. b. State the standards and protocols used in implementation Comment wherever necessary - standard Store user’s data securely - standard 2. Coding Details and Code Efficiency a. Code of the main logic (must be with comments) Shopping Kart has 3 modules : User, Product, Order. The starting point for the code is : app.js : import { createBrowserRouter, RouterProvider } from 'react-router-dom' import Root from './routes/Root' import Home from './routes/Home' import Error from './routes/Error' import Product from './routes/Product' import Cart from './routes/Cart' import { productLoader } from './routes/loaders' import Login from './routes/Login' import Register from './routes/Register' import Order from './routes/Order' import Admin from './routes/Admin' //createBrowserRouter function is called with an array of route objects as its argument. const router = createBrowserRouter([ { path: '/', T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 39 | Page
  35. element: <Root />, errorElement: <Error />, children: [ { path:

    '', element: <Home />, }, { path: 'products/:productId', element: <Product />, loader: productLoader, }, { path: 'cart', element: <Cart />, }, { path: 'order', element: <Order />, }, { path: 'login', element: <Login />, }, { path: 'register', element: <Register />, }, { path: 'admin', element: <Admin />, }, ], }, ]) //returns the RouterProvider component with the router instance created function App() { T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 40 | Page
  36. return <RouterProvider router={router} /> } //exported as the default export

    of the module. export default App User : model : const mongoose = require('mongoose') //schema defines the structure of the User document, including the required fields of username, name, and passwordHash, as well as an optional isAdmin field. The timestamps option is set to true, which adds createdAt and updatedAt fields to the document. const userSchema = mongoose.Schema( { username: { type: String, required: true, }, name: { type: String, required: true, }, passwordHash: { type: String, required: true, }, isAdmin: { type: Boolean, default: false, }, }, { timestamps: true } ) //used to modify the JSON representation of the document before it is returned by Mongoose, removing the _id and __v fields and adding an id field equal to the _id field. userSchema.set('toJSON', { transform: (doc, returnedObj) => { returnedObj.id = returnedObj._id T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 41 | Page
  37. delete returnedObj._id delete returnedObj.__v }, }) module.exports = mongoose.model('User', userSchema)

    User : Controller : const bcrypt = require('bcrypt') const usersRouter = require('express').Router() const User = require('../models/user') usersRouter.get('/', async (request, response) => { const users = await User.find({}) response.json(users) }) usersRouter.post('/', async (request, response) => { const { username, name, password } = request.body const exitstingUser = await User.findOne({ username }) if (exitstingUser) { return response.status(400).json({ error: 'username must be unique', }) } const saltRounds = 10 const passwordHash = await bcrypt.hash(password, saltRounds) //uses bcrypt to hash the password, creates a new User object with the hashed password, and saves it to the database. It returns the saved user as a JSON response with a status code of 201. const user = new User({ username, name, passwordHash, }) const savedUser = await user.save() response.status(201).json(savedUser) }) ///temp/delete route is for development purposes only, and deletes all users from the database. usersRouter.get('/temp/delete', async (req, res) => { await User.deleteMany({}) T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 42 | Page
  38. res.json({ message: 'Deleted all user' }) }) //usersRouter is exported

    for use in the main application. module.exports = usersRouter Product : model : const mongoose = require('mongoose') //The name and price fields are required. The description and imagePath fields are optional. const productSchema = mongoose.Schema( { name: { type: String, required: true, }, price: { type: Number, required: true, }, description: String, imagePath: String, user: { type: mongoose.Types.ObjectId, ref: 'User', }, }, { timestamps: true } ) //used to modify the schema's behavior, in this case to customize the returned JSON format by adding an id property and removing the _id and __v properties. productSchema.set('toJSON', { transform: (doc, returnedObj) => { returnedObj.id = returnedObj._id delete returnedObj._id delete returnedObj.__v }, }) T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 43 | Page
  39. module.exports = mongoose.model('Product', productSchema) Product : Controller : /* The

    productDataExtractor and userExtractor are middleware functions that extract relevant data from the incoming request body and headers. The GET route with no ID parameter returns all products sorted by creation date, and with the associated user's username and name added to the response. The GET route with an ID parameter returns a specific product, given an ID. If the product is not found, it returns a 404 status with an error message. The POST route adds a new product to the database, given the product data in the request body and the authenticated user's data. It returns the newly created product and a 201 status code. The PUT route updates a product in the database with new data in the request body, given an ID parameter. It returns the updated product and a 200 status code. The DELETE route removes a product from the database, given an ID parameter. It returns a 204 status code if the deletion is successful. The final GET route is only for development purposes and deletes all products in the database, returning a success message. */ const { productDataExtractor, userExtractor } = require('../utils/middleware') const productsRouter = require('express').Router() const Product = require('../models/product') productsRouter.get('/', async (request, response) => { const products = await Product.find({}) .sort({ createdAt: -1 }) .populate('user', { username: 1, name: 1, }) response.json(products) }) productsRouter.get('/:id', async (request, response) => { const product = await Product.findById(request.params.id) if (!product) { return response.status(404).json({ error: 'product not found', }) T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 44 | Page
  40. } response.json(product) }) productsRouter.post( '/', userExtractor, productDataExtractor, async (request, response)

    => { const newProduct = new Product(request.product) const returnProduct = await newProduct.save() response.status(201).json(returnProduct) } ) productsRouter.put( '/:id', userExtractor, productDataExtractor, async (request, response) => { const updatedProudct = await Product.findByIdAndUpdate( request.params.id, request.product, { new: true } ) response.status(200).json(updatedProudct) } ) productsRouter.delete('/:id', userExtractor, async (request, response) => { const deleted = await Product.findByIdAndDelete(request.params.id) if (!deleted) { return response.status(404).json({ error: 'invalid product id', }) } response.status(204).end() }) // For development only productsRouter.get('/temp/delete', async (req, res) => { T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 45 | Page
  41. await Product.deleteMany({}) res.status(200).json({ message: 'Deleted All', }) }) module.exports =

    productsRouter Order : model : const mongoose = require('mongoose') //schema includes fields for the user who placed the order, the products in the order (along with their quantities), the total amount of the order, the customer's phone number and address, and the status of the order (which defaults to "pending"). const orderSchema = mongoose.Schema( { user: { type: mongoose.Types.ObjectId, ref: 'User', required: true, }, products: [ { product: { type: mongoose.Types.ObjectId, ref: 'Product', }, quantity: { type: Number, default: 1, }, }, ], amount: { type: Number, required: true }, phone: { type: String, required: true }, address: { type: String, required: true }, status: { type: String, default: 'pending' }, }, { timestamps: true } T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 46 | Page
  42. ) //orderSchema.set() method is used to define a custom toJSON()

    function for the schema. This function is called whenever an order object is converted to JSON orderSchema.set('toJSON', { transform: (doc, returnedObj) => { returnedObj.id = returnedObj._id returnedObj.products = returnedObj.products.map(p => { p.id = p._id delete p._id return p }) delete returnedObj._id delete returnedObj.__v }, }) module.exports = mongoose.model('Order', orderSchema) order : controller : /* The orderRouter defines two routes: .GET / retrieves all orders that belong to the authenticated user if there is one. If the authenticated user is an admin, it retrieves all orders. The orders are sorted by creation date in descending order. The route first extracts the authenticated user with the userExtractor middleware. It then sends a response containing an array of orders in JSON format. Each order contains the user who made it and an array of products in the order. .POST / creates a new order with the product details, phone number, and address provided in the request body. It first transforms the product details from an array of objects to an array of objects containing only the product IDs and quantities. Then, it calculates the total cost of the order using the calcualteProductTotal utility function. It then saves the new order to the database and sends a response with the saved order in JSON format. There is also an empty route handler for DELETE /:id that is not implemented yet. Additionally, there is a temporary route handler for GET /temp/clear that deletes all orders from the database. This is meant for development purposes only. */ const orderRouter = require('express').Router() const Order = require('../models/order') const { calcualteProductTotal } = require('../utils/order_helper') T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 47 | Page
  43. const { userExtractor } = require('../utils/middleware') orderRouter.get('/', userExtractor, async (request,

    response) => { let query = { user: request.user._id } // Temporary handler for admin if (request.user.isAdmin && request.query.type === 'admin') { query = {} } console.log(request.params) const orders = await Order.find(query) .sort({ createdAt: -1 }) .populate('user', { name: 1, username: 1 }) .populate({ path: 'products', populate: { path: 'product', select: { name: 1, price: 1, imagePath: 1 }, }, }) response.json(orders) }) orderRouter.post('/', userExtractor, async (request, response) => { const { products, phone, address } = request.body const transformedProducts = products.map(p => ({ product: p.id, quantity: p.quantity, })) const amount = await calcualteProductTotal(products) const newOrder = new Order({ user: request.user._id, products: transformedProducts, amount, phone, address, }) const returnedOrder = await newOrder.save() response.status(201).json(returnedOrder) }) T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 48 | Page
  44. orderRouter.delete('/:id', async (request, response) => {}) // For development only

    orderRouter.get('/temp/clear', async (request, response) => { await Order.deleteMany({}) response.json({ message: 'cleared all orders' }) }) module.exports = orderRouter login : controller : /* When a user sends a POST request to the server, the router receives the username and password from the request body. It then looks up the corresponding user in the database using the User.findOne() method. If the user exists, it checks whether the provided password matches the password stored in the database using the bcrypt.compare() method. If the username and password are valid, the router creates a JSON Web Token (JWT) using the jsonwebtoken package. The token includes the user's ID and username, and it's signed with the server's secret key. The token also includes an expiration time of one month. The router then sends a JSON response to the client with a status code of 200, along with the token, username, name, and isAdmin status of the user. If the provided username or password is incorrect, the router sends a response with a status code of 401, indicating unauthorized access. */ const jwt = require('jsonwebtoken') const bcrypt = require('bcrypt') const loginRouter = require('express').Router() const User = require('../models/user') loginRouter.post('/', async (request, response) => { const { username, password } = request.body const user = await User.findOne({ username }) const passwordCorrect = user === null ? false : await bcrypt.compare(password, user.passwordHash) if (!(user && passwordCorrect)) { return response.status(401).json({ error: 'invalid username or password', }) } const userForToken = { username: user.username, T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 49 | Page
  45. id: user._id, } const token = jwt.sign(userForToken, process.env.SECRET, { expiresIn:

    60 * 60 * 24 * 30, // a month }) response.status(200).json({ token, username: user.username, name: user.name, isAdmin: user.isAdmin, }) }) module.exports = loginRouter b. Code of the algorithm, if any As of now, project is not using any algorithm c. Code Efficiency The code is effective but not efficient, earlier it was not in the most optimal form due to the following reason : 1. Shopping Kart takes more time to load products if they are in huge quantities as the project is deployed on a free deployment site due to which loading speed is very slow compared to other websites. 2. User’s information and password must be saved securely as a loss or stealing of it and cause huge damage of trust issues in further times to the company. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 50 | Page
  46. To solve the second problem and make the code more

    efficient I used bcrypt to hash the password and JWT to sign username and user ID with a server’s secret key. 3. Testing Approach Testing is an important aspect of incremental and iterative development, as it helps to ensure that each increment of development is working as expected and does not introduce new bugs or errors into the system. There are several testing approaches that can be used for incremental and iterative development, including: 1. Unit Testing: This approach involves testing individual units of code to ensure they are functioning as expected. Unit tests can be automated and run frequently during development, providing rapid feedback to developers. 2. Integration Testing: Integration testing involves testing the interactions between different units of code to ensure they are working together as expected. This is particularly important in incremental and iterative development, as each increment may add new units of code that need to be integrated with existing code. 3. Acceptance Testing: Acceptance testing involves testing the system as a whole to ensure that it meets the requirements and expectations of the end users. This type of testing can be done by the end users themselves, or by a dedicated testing team. a. Functional Testing 1. User Acceptance Testing or Beta Testing Acceptance testing involves testing the system as a whole to ensure that it meets the requirements and expectations of the end users. On following modules Acceptance testing or beta testing was carried out : 1. User module : When a new user comes to the website, he has to register himself first by setting name, username and password for one time. After which he can use the same credentials to sign in the website any time. In order to list any product on the website, user must have admin access 2. Product module : On the homepage, users can see all the products listed on the website along with its images, title and price. If a user clicks on a product he will be redirected to the product link where he can read T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 51 | Page
  47. description of the product and add the product to his

    cart to place the order. 3. Order Module : In order module, the user can add the number of stocks that he requires, address, phone number and payment option and can place the order after which they get an order id using which they can track their order. 2. Unit Testing Modules on which unit testing performed is : 1. User : Once a user clicks on any product he is redirected to the product site and can thus place the order. Even if the user is not signed in he can still see the products, to order he will have to sign in. 2. Products : After adding all the products that the user wants he can click on the cart option and providing necessary details like address, phone number and payment method he can place the order after which he will be redirected to the order module. 3. Order : Order module is essential for the seller, seller can see all the products that user has placed for and can change the status of order as required. For this the seller must have admin access which is given from the user module. 3. Integration Testing Modules which are integrated are : 1. Product + Order : All the products that users add to the cart and then further order along with order id is due to integration of product and order. 2. User + Product : If the user has admin access, then only he can list the product, for this the access is given from the user module. 3. User + Order : If the user is not signed in, he can still add products to the cart but upon placing order, he is redirected to sign in. b. Non-Functional Testing 1. Performance Testing System utilization when project is deployed on local host : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 52 | Page
  48. During initialization : While deployment : Idle : 2. Scalability

    Testing When multiple accounts are created : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 53 | Page
  49. 3. Portability Testing Shopping Kart website can be used on

    both mobile and desktop applications on all latest browsers. The UI is very simple and minimalist looking for ease of use for the users. The only requirements are system and network connection for the user to use Shopping Kart website c. Black Box Testing It is a software testing technique that examines the functionality of software without knowing its internal structure or coding. The main objective of implementing black box testing is to specify the business needs or the customer's requirements. • Requirements and Standards set before starting the project are met • Users are able to access and use websites very conveniently. d. White Box Testing In white-box testing, the internal structure of the software is known to the tester. Its main objective is to check the code quality. • First Unit testing is performed on every module to see if every functionality is working correctly • Second Integration testing is carried out to see if modules are working great collaboratively. And if the user is being redirected accordingly and smoothly. • At last Acceptance Testing to check if end to end flow of the website is working right and if there are changes to be made. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 54 | Page
  50. 4. Test Cases TEST CASES FOR SHOPPING KART Version: 1

    Issue date: 16th February 2023 Project Name: SHOPPING KART Project Code: VPTYS6 - 863PRJT01 TEST CASE System Name: SHOPPING KART Module Code: VP001-USER Pass 5 Pending 0 Fail 0 Number of test cases: 5 ID Test Case Description Test Case Procedure Expected Output Acutal Output Test date Result Note Test Case 1 Register 1. Go to Shopping Kart website and click on sign in button 2. Fill required details and click on register User should be redirected to sign in page and should be able to sign in with registered credentials User is redirected to sign in page and is able to sign in with registered credentials 16th February 2023 Pass Test Case 2 Sign in 1. Click on Sign in button and fill username and password 2. Click on Log in button User should be logged in and redirected to homepage User is logged in and redirected to homepage 16th February 2023 Pass Test Case 3 Wrong Credentials during login 1. Click on Sign in button and type username and password that doesn't exist in database 2. Click on Login button "invalid username or password" message should be displayed "invalid username or password" message is displayed 16th February 2023 Pass T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 55 | Page
  51. Test Case 4 Unique username 1. Click on Sign in

    button and type username and password that already exist in database 2. Click on Log in button "username must be unique" message should be displayed "username must be unique" is displayed 16th February 2023 Pass Test Case 5 Log out 1. Click on account logo and select Logout User should be logged out of the website User is logged out of the website 16th February 2023 Pass TEST CASE System Name: SHOPPING KART Module Code: VP002-PRODUCT Pass 5 Pending 0 Fail 0 Number of test cases: 5 ID Test Case Descriptio n Test Case Procedure Expected Output Acutal Output Test date Result Note Test Case 1 Add product 1. Sign in with your admin account and click on Admin 2. Click on Add Product and add necessary details and then save Product should be listed on the website Product is listed on the website 16th February 2023 Pass Test Case 2 Incomplete data 1. Click on Add Product 2. Leave some fields empty "Please fill out this field" message should be displayed "Please fill out this field" message is displayed 16th February 2023 Pass Test Case 3 Add to product 1. Click on Product that you want to buy 2. Click on Add to Cart Product should be added to the cart Product is added to the cart 16th February 2023 Pass Test Case 4 Checkout 1. Click on Cart button 2. Fill the necessary "Thank you for purchase" "Thank you for purchase" 16th February Pass T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 56 | Page
  52. data in Checkout section and click on Order Now message

    should be displayed along with the order id message is displayed along with the order id 2023 Test Case 5 Multiple Product 1. Add Multiple products to the cart 2. Add to Cart the same product twice All products should be added to the cart along and same product added twice should have no. of stock as 2 All products are added to the cart along and same product added twice has no. of stock as 2 16th February 2023 Pass TEST CASE System Name: SHOPPING KART Module Code: VP003-ORDER Pass 5 Pending 0 Fail 0 Number of test cases: 5 ID Test Case Descrip tion Test Case Procedure Expected Output Acutal Output Test Date Resul t Note Test Case 1 User Order 1. Login to the account 2. Click on Order button All orders placed should be visible All orders are visible 16th February 2023 Pass Any remark that you might want to specify Test Case 2 Admin Order 1. Log in with the Admin account 2. Click on Admin button and then select Order All orders placed by user should be visible along with their detail and total cost All orders placed by users are visible along with their detail and total cost 16th February 2023 Pass Any remark that you might want to specify Test Case 3 Pending 1. Click on Admin button and then select Order 2. Click on pending Product along with number of stocks and their respective total should be displayed Product along with number of stocks and their respective are displayed 16th February 2023 Pass Any remark that you might want to specify Test Case 4 Order ID 1. Order 1 product and note the order ID 2. Order another product Both ID should be different Both IDs are different 16th February 2023 Pass Any remark that you might want T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 57 | Page
  53. and note down the other ID to specify Test Case

    5 Continu e Shoppin g 1. Order products 2. Click on "Continue Shopping" User should be redirected to homepage User is redirected to the homepage 16th February 2023 Pass Any remark that you might want to specify 5. Modification and Expected Improvements At first, I made passwords secure by only hashing them using bcrypt, but further realized that hashed passwords are not sufficient so later I used JWT to create a token which includes the user’s ID and username and it’s signed with the server’s secret key. This token also includes an expiration time of 1 month. For further optimization and security we can block use of most commonly used passwords such as “12345678”,”password”.”qwertyui”,”superman” etc.. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 58 | Page
  54. 1. Test Reports TEST REPORT Date : 16th February 2023

    No Module code Pass Fail Pending Total Number of test cases 1 VP001 - USER 5 0 0 5 2 VP002 - PRODUCT 5 0 0 5 3 VP003 - ORDER 5 0 0 5 Sub total 15 0 0 15 Test coverage 100.00 % Test successful coverage 100.00 % • Project Name : Shopping Kart • Test Objective ◦ User : To ensure that the user can register and login. Password of every user is stored securely. Admin accounts can add products and can see the order placed by customers. ◦ Products : All products should be available on the homepage. Users should be able to add products they want to buy to the cart. Can change the number of stocks according to their need and place the order easily. ◦ Orders : Users should be able to see the orders placed by them in the Orders section along with date and time. Admin should be able to see orders placed by the user in the Admins section along with the quantity and various details provided by the user. • Test Summary ◦ Total Modules tested : 3 T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 60 | Page
  55. ◦ Total Test Cases : 15 ◦ Out of which,

    ◦ Test Cases Passed : 15 ◦ Test Cases Failed : 0 ◦ Test Cases Pending : 0 ◦ Test Cases Coverage : 100% ◦ Test Successful Coverage : 100% 2. User Documentation To create new account -> Click on Sign in -> Register T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 61 | Page
  56. Type necessary details, username must be unique, try adding in

    numbers if problem persists. Once you are registered you will be redirected to login page type the credentials & click on login. After logged in, homepage will appear To logout click on the Account button and select Log out, you will be logged out of the website. Explore products that are available on website ans select product that you want to know about and read description of it : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 62 | Page
  57. Now Add to Cart all products that you want. When

    you are done click on Cart button : and you will be able to see all the products that you have added to cart : Type in the phone number and address that you want the products to be delivered on and place order, after which you will get to see “ Thank you for purchasing” message along with unique order ID : User can also see what order they have made on what date & time by clicking on Order button : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 63 | Page
  58. FOR ADMIN OR SELLER For seller, they have to first

    sign in with their admin credentials after which they will be able to see another button of Admin on their homepage : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 64 | Page
  59. Admin can add new product : After successful addition of

    product , this message would be displayed : And would be able to see product listed : T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 65 | Page
  60. Admin can also track orders that they have gotten from

    the customer and also note the quantity with it in Admin -> Orders section : After which admin can log out . T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 66 | Page
  61. 3. Cost Estimation Cost estimation models are mathematical algorithms or

    parametric equations used to estimate the costs of a product or project. The results of the models are typically necessary to obtain approval to proceed, and are factored into business plans, budgets, and other financial planning and tracking mechanisms. • The Development Model COCOMO (Constructive Cost Model) is a regression model based on LOC viz. number of Lines of Code. It is a procedural cost estimate model for software projects and often used as a process of reliably predicting the various parameters associated with making a project such as size, effort, cost, time and quality. • Key Parameter a. Efforts - measured in person months units b. Schedule - measured in span of months or weeks To estimate the effort and development time, COCOMO uses the same equations but with different coefficients (a, b, c, d in the effort and schedule equations) for each development mode. Types are as follows : • Organic System • Semi - detached System • Embedded System The basic COCOMO equations take the form • Effort Applied (E) = ab (KLOC) bb [person-months] • Development Time (D) = cb (Effort Applied) db [months] • People Required (P) = Effort Applied / Development time [count] Where, KLOC is the estimated number of delivered lines (expressed in thousands) of code for a project. The coefficient ab, bb, cb and db are given in the following table: T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 67 | Page
  62. COCOMO Model for “Shopping Kart” a. Effort : 2.4 *

    2 KLOC 1.05 : 4.96 person-months b. Time for development : 2.5 * 4.960.38 : 4.59 months Where, Effort = Number of staff months (SM) Size = Number of source lines of code Time = Total number of months required to complete the project The Project Code for Shopping Kart application contains 2432 Lines of code Since, we know that 1000 Lines of Code = 1 KLOC (K - Kilo - 10^3) Therefore, the project consists of 2 KLOC. Effort = = 4.96 SM Time for development = = 4 Months Cost per Month = Rs.5000/- Total Cost of the Project = Cost per Month * Time required for the development project = 5000 * 4 = Rs. 20,000 T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 68 | Page
  63. 1. Conclusion In conclusion, the development of an e-commerce website

    using the MERN stack has proven to be an effective way to create a fast, efficient, and secure online shopping experience for customers. This project was designed to provide a user-friendly and responsive interface that can be accessed from any device, ensuring a seamless and enjoyable experience for customers. One of the key advantages of using the MERN stack is its ability to handle large volumes of data in real-time, allowing for fast and efficient processing of orders, payments, and inventory management. Additionally, this project was built with security in mind, implementing a range of measures to protect user data and prevent unauthorized access. The use of modern web development technologies such as React, Node.js, and MongoDB has made it possible to create an e-commerce website that is scalable and easy to maintain. This will allow the website to grow and adapt to the changing needs of the business, while still maintaining high performance and reliability. Finally, the MERN stack offers a range of features and tools that can be used to enhance the user experience, such as real-time updates, personalized recommendations, and social media integration. By leveraging these features, businesses can create a more engaging and personalized shopping experience that will drive customer loyalty and increase sales. Overall, this project has demonstrated the potential of the MERN stack for building high-performance and secure e-commerce websites. With its ability to handle large volumes of data in real-time, and its modern development tools and features, the MERN stack is an excellent choice for businesses looking to create an effective online shopping experience for their customers. 2. Limitations • Limitation 1 : Performance Description : While the MERN stack is designed to handle large volumes of data in real-time, its performance can be impacted by the size and complexity of the website. As the website grows, additional resources and optimization may be necessary to maintain optimal performance. When new products or a user is added, the website takes more time to load than before. • Limitation 2 : Security Description : While the MERN stack includes security measures to protect user data, it is still vulnerable to attacks such as SQL injections, cross-site scripting, and other security threats. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 70 | Page
  64. As a result, it is critical to implement additional security

    measures and follow best practices to ensure the security of the website. • Limitation 3 : Complexity Description : The MERN stack involves multiple technologies that require significant development skills and experience to use effectively. And it requires a significant amount of time and effort to learn these technologies and tools they are implemented on. 3. Future Scope of the Project The future scope for an e-commerce website built using the MERN stack is promising, with many opportunities to improve and enhance the user experience, increase sales, and drive customer loyalty. Some of the potential future developments include: 1. More Features ; Many features such as ratings, reviews, google sign in verification could be added, which due to time constraints were not possible to make. 2. Data Analytics and Visualizations : For sellers, we could create a dashboard to show how much sales a product is generating and what improvements they need to make in order to increase their revenue. 3. Chatbot : An addition of chatbot would help enhance the user experience as it would provide support to the user’s queries 24/7, also an AI Chatbot would be able to answer almost any question that user asks. 4. Recommendation System : A recommendation system would be able to provide every individual user a personalized recommendation based on various features, thus it will enhance user experience and generate better revenue for the businesses. T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 71 | Page
  65. [1] Fig 3.3 Iterative and Incremental Development Process Source :

    https://en.wikipedia.org/wiki/Iterative_and_incremental_development [2] Build an ecommerce website using MERN stack ,23 Jan 2021 https://dev.to/shubham1710/build-an-e-commerce-website-with-mern-stack-part-1-setting-up-the-pr oject-1l2d [3] JWT : Complete Guide 20 Jan 2023 https://blog.angular-university.io/angular-jwt/ [4] Password hashing in Node.js with bcrypt , November 15, 2022 https://blog.logrocket.com/password-hashing-node-js-bcrypt/ [5] Node JS Tutorial https://www.tutorialspoint.com/nodejs/index.htm [6] MongoDB Tutorial https://www.tutorialsteacher.com/mongodb [7] How to Build a React E-Commerce Web App, Mar 21, 2022 https://snipcart.com/blog/react-ecommerce-tutorial T.Y.B.Sc Information Technology Semester VI Viraj Parab Roll No : 863 73 | Page