Professional Documents
Culture Documents
stuBuy
Submitted by:
Nafees Ahmad Ansari (1601012124)
Shalloo Bajpai (1601012189)
Tapan Shukla (1601012175)
We, Nafees Ahmad Ansari, Shalloo Bajpai ,Tapan Shukla student of B.Tech.
(CSE), hereby declare that the work detailed in this Project entitled “StuBuy”
submitted to the Department of Computer Science and Engineering, Integral
University, Lucknow for the award of the Bachelor of Technology degree is our
original work. We have neither plagiarized nor submitted this work for the
award of any other degree. In case, this undertaking is found incorrect, We
accept that my degree may be unconditionally withdrawn.
Date:30/7/2020
Venue: Lucknow
CERTIFICATE
This is to certify that the work contained in this project report entitled “stuBuy”
by Nafees Ahmad Ansari,Shalloo Bajpai &TapanShukla is a faithful record of
work that has been carried out by the students, under my supervision.
Mrs. Shimaila
(Assistant Professor)
Mrs.Shimaila Dr.M.AkheelaKhanum
Date:_____________ Date:______________
ACKNOWLEDGEMENT
We have taken efforts in this project. However, it would not have been possible
without the kind support and help of many individuals and organizations. I
would like to extend my sincere thanks to all of them.
We would like to express our gratitude towards Mrs.Shimaila for their kind co-
operation and encouragement which helped us in completion of this project.
Our thanks and appreciations also go to our colleagues in developing the project
and people who have willingly helped me out with their abilities.
Abstract
stuBuyis an online platform where a user can buy and sell the products
available on the site. It is a multi-user platform where the users can post ads of
their products.
The users can create their personal profiles with their personal information
which can be seen on their page.
This project uses database rigorously to fetch and insert the user information in
and from the database. This feature makes it fast and more reliable in terms of
user experience.
Separate features for login and signup is available for the users.
The facility to change your password is also available to the users if needed so.
Email verification is active by which ambiguous users are filtered out. This
feature keeps the website free from unnecessary user base.
TABLE OF CONTENTS
S.NO. CONTENTS SIGN REMARK
1 ACKNOWLEDGEMENT
2 ABSTRACT
4 SYSTEM REQUIREMENTS
5 FEASIBILITY STUDY
6 REQUIREMENT ANALYSIS
7 PROJECT DESCRIPTION
9 PROJECT DESCRIPTION
10 PROJECT DESIGN
11 CODING
12 TESTING
13 FUTURE SCOPE
14 CONCLUSION
15 REFERENCES
Introduction
stuBuy is an online commerce platform where the users can register themselves
and become a part of the stuBuy database. These registered users can hence,
buy products that they desire from the available products in the stuBuy
database.
For every user registered in the database, a personal profile is created where the
users can upload their information such as name, address, photo etc. This helps
stuBuy to interact with the customers in a better way.
Mail facilities such as email verification and password change feature are also
available in this initial version of stuBuy. These facilities make stuBuy unique
in its domain and much secure.
System Requirements
System requirements is an enhanced list of the device(s) or the features that a system is
required to have in order to make it capable of performing a given task.
It is very crucial for our system to meet these requirements as without it, the system cannot
perform the task at hand.
HTML
CSS
Bootstrap
Java Servlets
Java Server Pages (JSP)
AJAX
2.2 Goals
To create an online shopping website
To create a verified login/signup portal
To create a user profile with user’s information
To create an online cart to store/add/remove items.
2.3 Conclusions
This project is able to achieve the intended goals by creating a web app interface that
interacts directly with the database thus providing an interface to the user for performing
multiple operations with the help of Java Servlets and JSPs integrated with JDBC and
MySQL database.
Requirement Analysis
In this chapter, I have covered the requirement analysis for this project in depth
The System development life cycle (SDLC), or Software development process in systems
engineering, information systems and software engineering, is a process of creating or
altering information systems, and the models and methodologies that people use to develop
these systems. In software engineering, the SDLC concept underpins many kinds of software
development methodologies.
Broadly, following are the different activities to be considered while defining system
software development processthe system development life cycle for the said project:
Problem Definition
System Analysis
Study of existing system
Drawback of the existing system
Proposed system
System Requirement study
Data flow analysis
Feasibility study
System design
Input Design (Database & Forms)
Updating
Query /Report design
Administration
Testing
Implementation
Maintenance
Object-oriented analysis and designmethods are becoming the most widely used methods for
computer systems design. The UML has become the standard language in object-oriented
analysis and design. It is widely used for modeling software systems and is increasingly used
for high designing non-software systems and organization
ER DAIGRAM:-ER Diagram Once in the ER diagram, the modeler can begin the process of
determining how the relational model fits together; and which attributes are primary keys,
secondary keys, and foreign keys based on relationships with other entities. The idea is to
build a logical model that conforms to the rules of data normalization.
2. Login
3. Mail verification
4. Password recovery
Java Servlets
Servlet technology is used to create a web application (resides at server side and generates a
dynamic web page).
Servlet technology is robust and scalable because of java language. Before Servlet, CGI
(Common Gateway Interface) scripting language was common as a server-side programming
language. However, there were many disadvantages to this technology. We have discussed
these disadvantages below.
There are many interfaces and classes in the Servlet API such as Servlet, GenericServlet,
HttpServlet, ServletRequest, ServletResponse, etc.
What is a Servlet?
A servlet life cycle can be defined as the entire process from its creation till the destruction.
The following are the paths followed by a servlet.
The servlet is initialized by calling the init() method.
The servlet calls service() method to process a client's request.
The servlet is terminated by calling the destroy() method.
Finally, servlet is garbage collected by the garbage collector of the JVM.
Now let us discuss the life cycle methods in detail.
The init method is called only once. It is called only when the servlet is created, and not
called for any user requests afterwards. So, it is used for one-time initializations, just as with
the init method of applets.
The servlet is normally created when a user first invokes a URL corresponding to the
servlet, but you can also specify that the servlet be loaded when the server is first started.
When a user invokes a servlet, a single instance of each servlet gets created, with each user
request resulting in a new thread that is handed off to doGet or doPost as appropriate. The
init() method simply creates or loads some data that will be used throughout the life of the
servlet.
The service() method is the main method to perform the actual task. The servlet container
(i.e. web server) calls the service() method to handle requests coming from the
client( browsers) and to write the formatted response back to the client.
Each time the server receives a request for a servlet, the server spawns a new thread and
calls service. The service() method checks the HTTP request type (GET, POST, PUT,
DELETE, etc.) and calls doGet, doPost, doPut, doDelete, etc. methods as appropriate.
The service () method is called by the container and service method invokes doGet, doPost,
doPut, doDelete, etc. methods as appropriate. So you have nothing to do with service()
method but you override either doGet() or doPost() depending on what type of request you
receive from the client.
The doGet() and doPost() are most frequently used methods with in each service request.
Here is the signature of these two methods.
Architecture Diagram
A webserver can assign a unique session ID as a cookie to each web client and for
subsequent requests from the client they can be recognized using the recieved cookie.
This may not be an effective way because many time browser does not support a cookie, so I
would not recommend to use this procedure to maintain the sessions.
A web server can send a hidden HTML form field along with a unique session ID as follows
This entry means that, when the form is submitted, the specified name and value are
automatically included in the GET or POST data. Each time when web browser sends
request back, then session_id value can be used to keep the track of different web browsers.
This could be an effective way of keeping track of the session but clicking on a regular (<A
HREF...>) hypertext link does not result in a form submission, so hidden form fields also
cannot support general session tracking.
URL Rewriting
You can append some extra data on the end of each URL that identifies the session, and the
server can associate that session identifier with data it has stored about that session.
For example, with http://tutorialspoint.com/file.htm;sessionid = 12345, the session identifier
is attached as sessionid = 12345 which can be accessed at the web server to identify the
client.
URL rewriting is a better way to maintain sessions and it works even when browsers don't
support cookies. The drawback of URL re-writing is that you would have to generate every
URL dynamically to assign a session ID, even in case of a simple static HTML page.
Apart from the above mentioned three ways, servlet provides HttpSession Interface which
provides a way to identify a user across more than one page request or visit to a Web site
and to store information about that user.
The servlet container uses this interface to create a session between an HTTP client and an
HTTP server. The session persists for a specified time period, across more than one
connection or page request from the user.
Java Mail
The JavaMail is an API that is used to compose, write and read electronic messages
(emails).
The JavaMail facility can be applied to many events. It can be used at the time of registering
the user (sending notification such as thanks for your interest to my site), forgot password
(sending password to the users email id), sending notifications for important updates etc. So
there can be various usage of java mail api.
Hyper Text: HyperText simply means "Text within Text." A text has a link within it, is a
hypertext. Whenever you click on a link which brings you to a new webpage, you have
clicked on a hypertext. HyperText is a way to link two or more web pages (HTML
documents) with each other.
Markup language: A markup language is a computer language that is used to apply layout
and formatting conventions to a text document. Markup language makes text more interactive
and dynamic. It can turn text into images, tables, links, etc.
Web Page: A web page is a document which is commonly written in HTML and translated
by a web browser. A web page can be identified by entering an URL. A Web page can be of
the static or dynamic type. With the help of HTML only, we can create static web pages.
Hence, HTML is a markup language which is used for creating attractive web pages with the
help of styling, and which looks in a nice format on a web browser. An HTML document is
made of many HTML tags and each HTML tag contains different content.
Features of HTML
3) It is a markup language, so it provides a flexible way to design web pages along with the
text.
4) It facilitates programmers to add a link on the web pages (by html anchor tag), so it
enhances the interest of browsing of the user.
6) It facilitates the programmer to add Graphics, Videos, and Sound to the web pages which
makes it more attractive and interactive.
7) HTML is a case-insensitive language, which means we can use tags either in lower-case or
upper-case.
CSS
CSS stands for Cascading Style Sheets. It is a style sheet language which is used to describe
the look and formatting of a document written in markup language. It provides an additional
feature to HTML. It is generally used with HTML to change the style of web pages and user
interfaces. It can also be used with any kind of XML documents including plain XML, SVG
and XUL.
CSS is used along with HTML and JavaScript in most websites to create user interfaces for
web applications and user interfaces for many mobile applications.
Before CSS, tags like font, color, background style, element alignments, border and size had
to be repeated on every web page. This was a very long process. For example: If you are
developing a large website where fonts and color information are added on every single page,
it will be become a long and expensive process. CSS was created to solve this problem. It
was a W3C recommendation.
CSS style definitions are saved in external CSS files so it is possible to change the entire
website by changing just one file.
CSS provides more detailed attributes than plain HTML to define the look and feel of the
website.
CSS Syntax:
A CSS rule set contains a selector and a declaration block.
Selector: Selector indicates the HTML element you want to style. It could be any tag like
<h1>, <title> etc.
Declaration Block: The declaration block can contain one or more declarations separated by
a semicolon. For the above example, there are two declarations:
1. color: yellow;
2. font-size: 11 px;
Property: A Property is a type of attribute of HTML element. It could be color, border etc.
Value: Values are assigned to CSS properties. In the above example, value "yellow" is
assigned to color property.
BOOTSTRAP
Bootstrap tutorial provides basic and advanced concepts of Bootstrap. Our Bootstrap tutorial
is designed for beginners and professionals.
Bootstrap is the popular HTML, CSS and JavaScript framework for developing a responsive
and mobile friendly website.
Our Bootstrap tutorial includes all topics of Bootstrap such as jumbotron, table, button, grid,
form, image, alert, wells, container, carousel, panels, glyphicon, badges, labels, progress bar,
pagination, pager, list group, dropdown, collapse,tabs, pills, navbar, inputs, modals, tooltip,
popover and scrollspy.
What is Bootstrap
o Bootstrap is the most popular HTML, CSS and JavaScript framework for developing
a responsive and mobile friendly website.
o It is absolutely free to download and use.
o It is a front-end framework used for easier and faster web development.
o It includes HTML and CSS based design templates for typography, forms, buttons,
tables, navigation, modals, image carousels and many others.
o It can also use JavaScript plug-ins.
o It facilitates you to create responsive designs.
o It is very easy to use. Anybody having basic knowledge of HTML and CSS can use
Bootstrap.
o It facilitates users to develop a responsive website.
o It is compatible on most of browsers like Chrome, Firefox, Internet Explorer, Safari
and Opera etc.
Scaffolding: Bootstrap provides a basic structure with Grid System, link styles, and
background.
CSS: Bootstrap comes with the feature of global CSS settings, fundamental HTML elements
style and an advanced grid system.
JavaScript Plugins: Bootstrap also contains a lot of custom jQuery plugins. You can easily
include them all, or one by one.
AJAX
AJAX is an acronym for Asynchronous JavaScript and XML. It is a group of inter-related
technologies like JavaScript, DOM, XML, HTML/XHTML, CSS, XMLHttpRequest etc.
AJAX allows you to send and receive data asynchronously without reloading the web page.
So it is fast.
AJAX allows you to send only important information to the server not the entire page. So
only valuable data from the client side is routed to the server side. It makes your application
interactive and faster.
AJAX Technologies
o HTML/XHTML and CSS
o DOM
o XML or JSON
o XMLHttpRequest
o JavaScript
These technologies are used for displaying content and style. It is mainly used for
presentation.
DOM
DOM stands for Data Object Modelling. It is used for dynamic display and interaction with
data.
XMLor JSON
For carrying data to and from server. JSON (Javascript Object Notation) is like XML but
short and faster than XML.
XMLHttpRequest
JavaScript
A JSP page consists of HTML tags and JSP tags. The JSP pages are easier to maintain
than Servlet because we can separate designing and development. It provides some
additional features such as Expression Language, Custom Tags, etc.
Advantages of JSP
There are many advantages of JSP over the Servlet. They are as follows:
1) Extension to Servlet
JSP technology is the extension to Servlet technology. We can use all the features of the
Servlet in JSP. In addition to, we can use implicit objects, predefined tags, expression
language and Custom tags in JSP, that makes JSP development easy.
2) Easy to maintain
JSP can be easily managed because we can easily separate our business logic with
presentation logic. In Servlet technology, we mix our business logic with the presentation
logic.
If JSP page is modified, we don't need to recompile and redeploy the project. The Servlet
code needs to be updated and recompiled if we have to change the look and feel of the
application.
In JSP, we can use many tags such as action tags, JSTL, custom tags, etc. that reduces the
code. Moreover, we can use EL, implicit objects, etc.
The Lifecycle of a JSP Page
Signup Page
Personal Account
Password Recovery
Email verification
Database
Data Flow Diagrams
Level 1
Level 1
Level 1.1
User
Yahoo mail
Hotmail
Add email account
Settings
2. Registration
3. Login
4. Logout
5. Mail Sender
TESTING
System Testing: -
Black box testing method was used for system testing. The black box testing
usually demonstrates that software functions are operational; that the input is properly
accepted and the output is correctly produced; and that integrity of external information
(databases) is maintained.
Testing is the process of running a system with the intention of finding errors.
Testing enhances the integrity of a system by detecting deviations in design and
errors in the system.
Testing aims at detecting error-prone areas. This helps in the prevention of errors
in a system.
Testing also add value to the product by confirming to the user requirements.
Causes of Errors
Testing Objectives
Kinds of Testing:
Black Box Testing- Not based on any knowledge of internal designs or code. Tests are based
on requirements and functionality.
White Box Testing- Based on the knowledge of the internal logic of an application’s code.
Tests are based on coverage of code statements, branches, paths and statements.
stuBuy isan online platform where the users can buy their desired products without going
through the hassle of generic market shopping culture. The users can select from a variety of
products at a single stop.
The future scope of this project can be extended to a single stop platform for buying and
selling varied variety of items among businesses or users with the ease of selecting products
from a large variety and sellers.
Much of offline business can be taken online making it easier for people to commit
commerce.
With increasing need of variety products, people are moving towards online
commerce
Users can also sell their own products to other users or businesses.
CONCLUSION
The software will be developed by implementing the concept of modularity which in turn
reduces the complexity involved in maintaining it. The administrator should have a sound
technical knowledge about maintaining the software and further enhancements will be
undertaken by the developer.
The application is portable which ensure its adaptability for use on different computer
terminals with different operating system and standards.
The factors guarantee the software’s availability includes proper termination and correct
input details. Also the resources used for the project development are Microsoft certified
which speaks of its high quality standards.
Hence we may conclude that the application system being developed helps a great deal in
modifying the computerized Alumni Management System.
Goal achieved: The System is able provide the interface to the user so that he can replicate
his desired data.
User friendliness: Though the most part of the system is supposed to act in the background,
efforts have been made to make the foreground interaction with user as smooth as possible.
Also the integration of the system with Alumni Management project has been kept in mind
throughout the development phase.
References
1. Udemy.com
The platform which provided me this interesting training.
2. Geeksforgeeks.com
For all the theory lessons on the topics
3. Javatpoint.com
For the detailed diagrammatic representations.