Project Overview
With the continuously expanding popularity of the e-commerce websites, increasing number of organizations are moving to e-commerce websites from physical stores in order to reach out the higher number of customers. With the increasing number of the customers it is found that due to the ease of shopping of the products the figure is increasing every day. By thinking about this increasing rate it can be can stated that online business is growing colossally as a result of its entire scope of advantages that any industry vertical can appreciate.
Even though there are numerous e-commerce sites are available in the country, there is no e-commerce site that provides and sells antique products. This e-commerce project is about developing the site for selling antique products such as period furniture, Georgian clocks, Victorian fireplaces.
The E-commerce store can change the way organization is doing business presently by providing access to the 24*7 store to its customers to have great shopping experience.
In order to develop the solution for the E-commerce shop following modules are considered in order to address all the functionalities required for the e-commerce website.
Customer registration: This page provides registration utility for the customers on the site. After the registration, a user will be able to add different antique products to their cart on the website, otherwise the will be only able view product information with the “Add to cart functionality”.
Login: Allows a customer to log in as a previously registered customer to their specific account. Every customer will be able to log in to only one account on the website.
Forget password: This utility page is required for registered customer in case they forget their password.
Product information page: This page displays the different products with the description as well as list of all the products in the navigation pane of the website.
Special offers page: The special offers page displays the available discounts and offers on the antique products available on the store.
Cart: Products chosen by a logged in users are temporarily stored in the shopping cart of the account. The customer will be able to change the number of products by modifying the cart.
New released product: According to the product database, this page displays the newly released products in the recent time.
Ecommerce design has been supporting various interaction between parties participating in the ecommerce transaction. The database used in this project is SQLite. SQLite is a relational database that include all the library functions of the C programming. However, with respect to other database systems, SQLite is not a client-server database engine. SQLite is a software library that implements server less, zero-configuration and transactional SQL database engine. The source code of the SQLite has been a public domain. SQLite include a zero configuration system that means there is no requirement of setup and administration. The SQLite has been providing a better performance than other database systems. SQLite is compatible with both 32-bit and 64-bit operating system and can be used with various programming languages. Thus database is accessible with wide variety of third-party tools. This application reduces the cost as the content can be accessed and updated using concise SQL queries instead of lengthy and error-prone procedural queries.
Functional Requirements
In this section, a basic structure of the tables including database for the project including primary and foreign keys.
SNo. |
Name |
Type |
Description |
1 |
CustID |
Varchar |
Primary key for Customer identification |
2 |
Password |
Varchar |
Security for Customer |
3 |
CustFirst_Name |
Varchar |
|
4 |
CustLast_Name |
Varchar |
|
5 |
Address |
Varchar |
|
6 |
City |
Varchar |
|
7 |
Zip |
Varchar |
|
8 |
State |
Varchar |
|
9 |
Email Address |
Varchar |
|
10 |
Phone_Number |
Varchar |
SNo. |
Name |
Type |
Description |
1 |
ProductID |
Varchar |
Primary Key for products |
2 |
Product_Name |
Varchar |
|
3 |
Product_Price |
Integer |
SNo. |
Name |
Type |
Description |
1 |
ShoppingCartID |
Integer |
Primary key for Shopping Cart Identification |
2 |
InventoryID |
Varchar |
Foreign key to Inventory |
3 |
Price |
Double |
|
4 |
Date |
Date |
|
5 |
UserID |
Varchar |
Foreign key to Customer |
6 |
Quantity |
Integer |
SNo. |
Name |
Type |
Description |
1 |
OrderID |
Integer |
Primary key for Order identification |
2 |
CustID |
Char |
Foreign key to Customer |
3 |
Receiver’s Name |
Char |
If order is to be sent to other address rather than to the customer, we need that address |
4 |
Address |
Char |
|
5 |
City |
Char |
|
6 |
Zip |
Integer |
|
7 |
State |
Char |
Foreign key to State Tax |
8 |
Type of Shipping |
Char |
Foreign key to Shipping Type |
9 |
Date of Purchase |
Date |
SNo. |
Name |
Type |
Description |
1 |
CreditUsername |
Varchar |
Primary key for Customer Identification |
2 |
Credit Card Number |
Varchar |
|
3 |
Card Type |
Varchar |
Master Card, Visa, Discover |
4 |
CVV Number |
Integer |
Number present on the back of the card for extra security |
5 |
Expiry Date |
Date |
|
6 |
CustID |
Varchar |
Foreign key to Customer |
The keys have been identified in the table and primary keys are underlined in the above tables. The various primary keys are CustID, ProductID, OrderID and CreditUsername.
Data Flow Diagrams helps in maintaining the flow of data and information from external entities into the systems and from one process to another system. However, there are four symbols for drawing in the DFD drawing. A DFD shows what kind of information will be input to and output from the system, how the data will advance through the system, and where the data will be stored. It does not show information about process timing or whether processes will operate in sequence or in parallel, unlike a traditional structured flowchart which focuses on control flow, or a UML activity workflow diagram, which presents both control and data flows as a unified model.
- Rectangles represents external entities that are sources and destinations of data.
- Ellipses represents processes that helps in taking data as an input and validate process by providing output.
- Arrows represents the data flows that can be either electronic data or physical items.
- Open-ended rectangles and disk symbol represents data stores that include the antique stores in the online portal.
DFD helps in revealing relationships among several components of the program and project. Therefore, DFDs are an important technique that helps in modelling a system’s high-level detail for showing the output of the project. These diagrams are used for the easy representation of the technical entities of project. DFDs help system designers and others during initial analysis stages visualize a current system or one that may be necessary to meet new requirements. Systems analysts prefer working with DFDs, particularly when they require a clear understanding of the boundary between existing systems and postulated systems.
Database Normalization refers to a process that helps in maintaining and organizing inefficient structured relation into smaller and more structured relations. The process of normalization has been determining what type of data need to be stored. The normalization process include various type of steps that helps in maintaining them in normal form. These forms were initially proposed to be called as First Normal Form (1NF), Second normal Form (2NF), and Third normal Form (3NF). Subsequently R.Boyce and E.F.Codd introduced a stronger definition of 3NF called Boyce-Codd Normal Form (BCNF). In this project, 3 NF has been used for making a relation with the first and second normal form and no non-primary key is transitively depended on the primary key. However, if there is a transitive dependency, this dependency needs to be removed with a non-determinant to a new reaction along with copy of determinants. The normalization has been organizing various structured and unstructured data in the database. Normalization helps in minimizing the data redundancy and undesirable characteristics including insertion, update and Deleting Anamolies. The normalization has been used for mainly two purposes including eliminating redundant useless data and ensuring data dependencies make senses and the data is logically stored. A table design is said to be in 3NF of both the following conditions hold:
- Table must be in 2NF
- Transitive functional dependency of non-prime attribute on any super key should be removed.
An attribute that is not part of any candidate key is known as non-prime attribute.
In other words 3NF can be explained like this: A table is in 3NF if it is in 2NF and for each functional dependency X-> Y at least one of the following conditions hold:
Design and Development Methodologies
X is a super key of table
Y is a prime attribute of table
For the development and implement the site we have used the ASP.Net core Framework and MVC architecture for the website which is often referred as the three tier architecture for the application. This architecture separates the presentation, logic processing and database operations in different modules. For the development of the site we have used Visual Studio 2017, SQLite as database, MVC as the architecture of the application and IIS as the server.
Following are the technologies that are used for development of the site,
- Application developed using the ASP.NET Core helpful in the much modular and leaner architecture of the application.
As the ASP.NET Core does not depend on the System.Web.dll. but on the granular and very much structured NuGet packages for the projects.
- This helps in adding the packages to the app whenever we need it to improve the functionality and upgrade the application through the NuGet packages.
- This leads to the increased security, lesser maintenance, enhanced execution, and reduced cost for development.
- With ASP.NET Core, it is possible to: Build and run cross-platform ASP.NET MVC applications on Linux, Windows, Mac and Built on .NET Core.
- Single web stack for Web UI and Web APIs development.
- Cloud-prepared condition based setup
- Built-in help for reliance infusion
- Ability to have on IIS or self-have in your own procedure
IIS as a web server: for this application we have used the IIS as the webserver. Inside the .NET Framework, IIS or the Internet Information Service or the IIS processes and responds against the user requests while acting as a Web Server for a web application. A web server is responsible for accepting incoming HTTP requests and to return requested resource as the HTTP response to the requesting client. In case of this MVC project, at first IIS decides how to handle the request from the user. Its decision is based upon the source of the request.
Processing of the request: In this process, routing of the request is the initial phase of the MVC process Life Cycle. All solicitations to an ASP.NET MVC based application first go through a UrlRoutingModule which is a HTTP module. The RouteCollection property of UrlRoutingModule contains all routes to the different views available in Global.asax in the project. UrlRoutingModule looks and matches for the route matching with the request. At the point when a match is available it recovers the IRouteHandler that specific route. The handler gets an IHttpHandler type object which is an HTTP handler for the request. At the end the route objects are added to the RouteTable objects through which the response data is send.
Controller: The MVCHandler gets a controller from the MVC controller for the specific route. This controller handles further processing of the request. The MVCHandler objects available from the previous stages utilizes RequestContext (as a constructor parameter) occurrence to recognize the IControllerFactory objects to generate controller instance.
View: View is responsible presenting the results from the processing of the request. It is also responsible for involving the appropriate View Engine for the project. The View Engine is responsible for rendering the results on the browser. For this specific project we have used the Razor View engine.
Following is the home page of the website that includes the different functionalities for the e-commerce site,
Following is the screenshot of the registration page,
Products page
For the launch of the website it is planned to place flash ads on the other websites that will be prompted on the different other websites used by the target customers. As an example the flash adverts can be placed on the Facebook and other social networking sites to promote the site and attract the customers. In addition to that the use of the google AdWords also can be used for advertising of the website.