This document outlines a virtual shopping system project that allows traditional retailers to open online virtual showrooms. The 6-month project aims to help local retailers compete with online stores by giving customers a way to browse products online. Key aspects include allowing shopkeepers to register, upload products and photos to create virtual storefronts. Users can search for products and stores by location. The system follows an MVC framework and uses a SQL database to store product and user data.
4. 1. Introduction of Virtual shopping
Virtual store research is an extension of the traditional methods of
marketing research. While marketing research employs techniques like
focus groups, surveys and observation to better understand consumer
decision-making, virtual store research uses these standard research
techniques within a simulated store setting, delivered via computer.
This allows test consumers within the virtual environment to interact
with store merchandise and make purchase decisions in a way that
closely resembles real in-store behavior.
Additionally, virtual store technology can help consumer packaged
goods companies and retailers make daily business decisions without
the need for physically changing stores and products
“This is a product photography website. It is an opportunity for retailers
anywhere in the country to open an online showroom where they can
display their products. Users can scan the products, read/post reviews,
share it and create a user profile. This website is not meant for online
shopping, but one can browse through a wide range of products and In
that particular area people can know these retailers and their product
what they have present time and new patterns and Goods will arrive on
their store. So, we have intended it as an avenue for traditional
retailers to get customers so that they can compete with the online
stores, which are delivering products at doorsteps.
5. You understand that you have the following obligations before
opening a virtual showroom or entering any details on the website:
i. You must register with the website and create a profile
You must provide a short description of yourself (and/or your
organization) on your profile.
ii. You must provide information that is accurate and up-to-date.
iii. You must not post any content that is intended to de-fraud, cheat
or otherwise mislead or offend any other user of the Website.
iv. You are solely and fully responsible for all the information,
photographs and any other content that you post/upload on your
profile.
About virtualeee.com in 7 points
1. Virtualeee.com is a social on-line platform exclusively for
traditional retailers to open a virtual showroom and it's free for
life time.
2. Virtualeee.com facilitates a traditional showroom to display
their products on-line and interact with customers.
3. Virtualeee.com is product photography website and does not
sell them.
4. Users can search products without being a registered member
of the site.
6. 5. Users of the site can access any showroom in a desired
location. The customer interface is exclusively designed for
delivering location based radius search.
6. Users can scan products around their neighborhood
showrooms to make easy, simple and better purchase decisions.
7. Virtualeee.com is developed and owned by Troikas Marketing
Private Limited, Kerala, India.
Register (for new users)
Login (Existing users)
Register for shopkeepers
Login for shopkeepers
View Products by product category
Select products and add them to cart.
Update the product quantities in the cart
View cart contents
Checkout the cart contents for order processing
Edit user profile such as address, contact information and
password
Virtualeee.com is an exclusive product photography sharing website for
a traditional retailer .virtualeee.com forms an online platform for all
traditional retailers to display their product and add value to the
shopping experience of everyone.
Virtualeee.com is based on location based radius search where anyone
can virtually walk-in any showroom of their desired location bypassing
the physical and psychological distance, the idea was developed by
7. Troikas Marketing Private Limited after a yearlong research and
development.
Any business with a physical product can open a virtual showroom here
and display their product photography and reach out to thousands of
people and create a new shopping experience, which will revolutionize
the product search and add value to everyone's purchase decision.
Your use of the website is governed by this Terms of Service. This
domain name virtualeee.com owned and operated by M/s Troikas
Marketing Pvt. Ltd.
Virtualeee.com is an online platform that connects suppliers/ service
providers with interested customers. Sellers, shop owners, retailers and
other service providers can create a profile and upload information and
pictures about their products and services on the website, thus opening
a “Virtual Showroom”
You agree that you are using your best and prudent judgment before
using the website, accessing the information and links available on this
website. Your use is at your sole risk and the website will not be liable
in any manner.
2. Project Duration
6 MONTH
8. 3. OBJECTIVE
The main objective of this project is to raise Local Market. As we know
that the business of normal retailers in our cities is being affected by
the online market.
So, to raise this market we thought to bring all retailers Online. Where
they can update their new arrivals and their product in shop at present
and they can find more consumers and can do business in other cities
as well.
In fact, any business with a ‘physical product’ can open their virtual
showroom. “We have our own professional in-house photographers
who take the product photographs. So, every time a new product is
launched by a firm, it is updated on myshop.com.
9. 4. NEED
The trend of people shopping from the comfort of their own homes
rather than going into stores has contributed to a drop in Black Friday
retail sales in the U.S. for two consecutive years, according to the
National Retail Federation.
Retailers that have yet to jump online are facing some tough
competition, not only because of their physical limitations, but virtual
stores are offering perks that are similar or better, like free worldwide
shipping and returns on purchases, as well as free gift-wrapping and
samples at checkout. Most deals in stores can be found online, and
brick-and-mortar retailers know this.
10. 5. Modules of project
Module 1
Module 2
Module 3
User
Admin
Shopkeepers
16. About the MVC Model, Controllerand View
Design Pattern:
This software based on concept of the Model View Controller (MVC)
design pattern.
View renders the data from the Model in response to the request made
to the model by controlled events made by user interaction.
Model View Controller is a design approach to separate the application
object model from GUI, originally invented around 80s. Then later on it
has become a widely accepted common design pattern. The main
objective behind this pattern is to decouple the view of the data
(presentation layer) from the actual data processing so that the same
model can be used for various views. This is achieved by using three
different types of objects that interact with each other in loosely
coupled manner with their discreet set of tasks.
These three objects are known as Model, View and Controller.
17. VIEW:
View is the graphical data presentation (outputting) irrespective of the
real data processing. View is the responsible for look and feel, some
custom formatting, sorting etc. View is completely isolated from actual
complex data operations. For example, online product catalog view is
completely separated from database connection, query, tables etc. It
simply gets final row-data from the model and puts some cosmetics
and formatting before displaying it in browser. View provides interface
to interact with the system. The beauty of MVC approach is that it
supports any kind of view, which is challenging in today’s distributed
and multi-platform environment.
A MVC model can have multiple views, which are controlled by
controller. View interface can be of WEB-FORMS, HTML, XML/XSLT,
XTML, and WML or can be Windows forms etc.
MODEL:
Model is responsible for actual data processing, like database
connection, querying database, implementing business rules etc. It
feeds data to the view without worrying about the actual formatting
and look and feel. Data provided by Model is display-neutral so it can
be interfaced with as many views without code redundancy; this eases
your code maintenance and reduces bugs and allows code -reuse at
good extent. Model responds to the request made by controllers and
notifies the registered views to update their display with new data
18. CONTROLLER:
A controller can send commands to the model to update the model's
state (e.g., editing a document). It can also send commands to its
associated view to change the view's presentation of the model (e.g.,
by scrolling through a document).
Controller is responsible for Notice of action. Controller responds to the
mouse or keyboard input to command model and view to change.
Controllers are associated with views. User interaction triggers the
events to change the model, which in turn calls some methods of
model to update its state to notify other registered views to refresh
their display.
Following are the few of the benefits of MVC design pattern.
Since MVC handles the multiple views using the same enterprise model
it is easier to maintain, test and upgrade the multiple system.
It will be easier to add new clients just by adding their views and
controllers.
Since the Model is completely decoupled from view it allows lot of
flexibilities to design and implement the model considering reusability
and modularity. This model also can be extended for further distributed
application. It is possible to have development process in parallel for
model, view and controller.
22. 9. Requirement Specification
Virtual ShoppingSystem Specification:
The system specification is the final work produced by the system
and requirements engineer. It serves as the foundation for hardware
engineering, software engineering, database engineering and human
engineering. Once requirements have been gathered explore each
requirements in relationship to others, examine requirements for
consistency, omissions and ambiguity.
Hardware Specification
It is recommended that the minimum configuration for clients is as
appended below:-
Microprocessor : Pentium-2 class processor & above
Ram : 128 MB of RAM
Hard Disk : 2.5 gigabytes (GB) on installation drive,
Which Includes 500 MB on system drive.
CD ROM Drive : 52 X CD ROM Drive
Software Specifications
Operating System : Windows 8, 7, 10/Windows 2000 NT
23. RDBMS : Sql Server 2008/2010
Front End : Microsoft Visual Studio.NET with C#
10. Sample Code
Model.cs
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using Retailers.Common;
namespace Retailers.Models
{
/// <summary>
/// Developed By:Rishabh Atri
/// Developed On:27-March-2015
/// Description:This is mapping class for mapping productCategory
table of database
/// </summary>
///
[Table("ProductCategory")]
public class ProductCategory
{
24. DataFunctions ObjDF = new DataFunctions();
[Key]
[Display(Name = "ProductCategory Id")]
public int ProductCategoryId { get; set; }
[Required(ErrorMessage = "Category name is required")]
[StringLength(50, ErrorMessage = "Name of Category must be less
then 50")]
[RegularExpression("^[A-Z-a-z]*$", ErrorMessage = "Category
Name must be alphabatic.")]
[Display(Name = "ProductCategory Name")]
public string ProductCategoryName { get; set; }
public bool IsActive { get; set; }
#region Fetching record from ProductCategory Table
public IEnumerable<ProductCategory> productcategoryList
{
get
{
DataTable dtProductCategory =
ObjDF.SelectData(StoredProcedures.usp_SelectProductCategory);
List<ProductCategory> PCList = new List<ProductCategory>();
if (dtProductCategory.Rows.Count > 0)
{
foreach (DataRow dr in dtProductCategory.Rows)
{
25. ProductCategory objProductCategory = new
ProductCategory();
objProductCategory.ProductCategoryId =
Convert.ToInt32(dr["ProductCategoryId"].ToString());
objProductCategory.ProductCategoryName =
dr["ProductCategoryName"].ToString();
objProductCategory.IsActive =
Convert.ToBoolean(dr["IsActive"].ToString());
PCList.Add(objProductCategory);
}
}
return PCList;
}
}
#endregion
#region Code for insert record in ProductCategory
public bool InsertProductCategory(ProductCategory product)
{
SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@productCategory",
SqlDbType.VarChar, 50);
param[0].Value = product.ProductCategoryName;
param[1] = new SqlParameter("@isActive", SqlDbType.Bit);
param[1].Value = product.IsActive;
return
ObjDF.CRUD(StoredProcedures.usp_InsertProductCategory, param);
}
26. #endregion
#region Code for Update record in ProductCategory
public bool UpdateProductCategory(ProductCategory
productUpdate)
{
SqlParameter[] param = new SqlParameter[3];
param[0] = new SqlParameter("@ProductCategoryId",
SqlDbType.Int);
param[0].Value = productUpdate.ProductCategoryId;
param[1] = new SqlParameter("@ProductCategory",
SqlDbType.VarChar, 50);
param[1].Value = productUpdate.ProductCategoryName;
param[2] = new SqlParameter("@isActive", SqlDbType.Bit);
param[2].Value = productUpdate.IsActive;
return
ObjDF.CRUD(StoredProcedures.usp_UpdateProductCategory, param);
}
#endregion
#region Code for Delete record from ProductCategory
public bool DeleteProductCategory(ProductCategory
productDelete)
{
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@ProductCategoryId",
SqlDbType.Int);
param[0].Value = productDelete.ProductCategor
27. Controller.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Retailers.Models;
using System.Configuration;
namespace Retailers.Controllers
{
/// <summary>
/// Developed By:ShrutiGoyal
/// Developed On:07-April-2015
/// Description:this is interface for access another class members.
/// </summary>
///
public class ProductCategoryController : Controller
{
ProductCategory objproductCategory = new ProductCategory();
#region Product Category List
public ActionResult ProductCategoryList()
{
if (Session["AdminRole"].ToString() ==
ConfigurationManager.AppSettings["Super Admin"].ToString())
{
return View(objproductCategory.productcategoryList.ToList());
32. </tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ProductCategoryName)
</td>
<td>
@Html.DisplayFor(modelItem => item.IsActive)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id =
item.ProductCategoryId }) |
@Html.ActionLink(item.IsActive?"DeActivate":"Activate",
"DeActivate", new { id = item.ProductCategoryId })
</td>
</tr>
}
</table>
33. Data Functions.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Retailers.Common
{
/// <summary>
///Developed By:Shruti Goyal
///developed on:26-March-2015
///Description:This is Model Class for all DataFunctions
/// </summary>
public class DataFunctions
{
private SqlConnection con;
private SqlCommand cmd;
private DataSet ds;
private SqlDataAdapter Adapter;
public DataFunctions()
34. {
con = new
SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectio
n"].ConnectionString);
}
public DataTable SelectData(StoredProcedures SpName)
{
con.Open();
cmd = new SqlCommand(SpName.ToString(), con);
cmd.CommandType = CommandType.StoredProcedure;
Adapter = new SqlDataAdapter(cmd);
ds = new DataSet();
Adapter.Fill(ds);
con.Close();
return ds.Tables[0];
}
public bool CRUD(StoredProcedures SpName,SqlParameter[]
Param )
{
con.Open();
cmd = new SqlCommand(SpName.ToString(), con);
cmd.CommandType = CommandType.StoredProcedure;
foreach(SqlParameter p in Param)
{
cmd.Parameters.Add(p);
}
int result = cmd.ExecuteNonQuery();
con.Close();
return result > 0 ? true : false;
35. }
}
}
StoredProcedures.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Retailers.Common
{
/// <summary>
/// Developed By:Rishabh Atri
/// Developed On:26-March-2015
/// Description:This is mapping class for StoreProcedure
/// </summary>
public enum StoredProcedures
{
#region ShopCategory
usp_ShopCategory,
usp_InsertShopCategory,
usp_DeleteShopCategory,
usp_UpdateShopCategory,
#endregion
#region Area
usp_SelectArea,