Candy Cabinet City (CCC) Overview
The CCC project comes from my Secure E-Commerce class at UNT during my Spring semester as a senior. The aim of the project leans more towards the E-Commerce side of the course as opposed to the Secure side. Given the depth of our site, which included almost 100 unique products and a back-end administration panel, most of the time on this project was spent simply dealing with the basic features of the website.
The basis of Candy Cabinet City is to sell arcade machines, arcade games, arcade machine accessories, and custom built arcade machines. At an E-Commerce angle, the site offers a fair range of products and options (which can easily be expanded via the database), a user login and shopping cart system, and some basic security measures to protect the business and its users.
Security measures include a hash system for password storage and protection against unsanitized user input via both GET and POST methods. Why is sanitizing input important? With unsanitized input passed to an SQL argument, a malicious user can access tables and information from the database. Input sanitation helps combat such data compromise techniques. The login system uses a simple cookie to store a user’s login name and does not have an associated session ID. Plans were originally laid out to include a session ID cookie for added security, but due to time constraints sessions could not be implemented.
Home Page

The home page for CCC includes a banner ad at the top followed by top sellers and a super deal item. The top banner serves as the biggest ad space on the site for pushing a certain category of products or a single product itself. The “top sellers” is not the actual system’s top selling items, but instead an admin-controlled set of products to display on the front page. The best use of this space is to point the site user to items which are bought or viewed by visitors on a regular basis. Not only does that help users get to useful products quicker, but it also may remind a user “Oh, that’s right! We need more switches for some of our machines.” The super deal section functions as perfect up-front real estate to make users aware of any sales going on at the moment.
Category Pages

Each category page has an identical layout which includes small thumbnails of products in the center (including price as well) and a featured product displayed in the right hand column. This featured product is given not only a larger associated image, but also a small snippet of information related to the product. In simplest terms, it is a category-specific version of the super deal type product.
Product Pages

Each product page follows the same layout and includes a large image of the product being viewed, some quick product technical stats to the right of the product image, stock status, an in-depth description, price, and an add to cart button. Multiple product views were a consideration in the early stages of development, but once again time constraints kept multiple product views from being implemented in the version that was submitted.
Custom Cabinet System

The custom cabinet system is the service that, if this store were to exist, sets CCC apart from other online retailers. The idea behind the custom cabinet system is to let the user choose a cabinet, game, and associated hardware that they want to use to build a system and then assemble it at the warehouse before shipping it out to the customer. Not only does the customer get full control of the cabinet, but they also receive a 10% overall discount as opposed to the full price that would be paid for ordering each item separately.
When a custom cabinet is ordered it is assigned a custom cab # and added to the user’s cart. Upon placing their order, both the customer and the shipping department receive order receipts which include the number of the custom cab ordered. The shipping department can take the custom cab # and look up the customer-selected components for assembly and shipment.
Login and Registration Form

CCC login is fairly straightforward. The user logs into their account using their username and password and a cookie is stored on the user’s computer that keeps them logged in for two hours before logging them out. Registration asks for a username, email, and password and checks both entered email addresses and passwords to ensure that they match. If the passwords and emails match and the username and email address have not been registered then the user’s account is created. On account creation an email is dispatched to the user that welcomes them to CCC as well as includes their username and password. In the database, the user’s username, email, and password are stored and a table is created for the user to function as their shopping cart.
Shopping Cart

The shopping cart page displays the items in the users cart in a clear and easy-to-follow way. The user can see how many of each item they have in their cart and can also delete items from their cart as needed. Once an item is in the cart, a form appears beneath the cart that starts the checkout procedure. In the CCC implementation as it stands, the user hits “Submit Order” and emails are generated and sent to the user and the shipping warehouse. Due to the fragile nature of credit information, we decided not to attempt to handle or store that type of data, especially since the test version of CCC was being linked around to people who believed it was a real store. As for implementing a payment system, PayPal can easily be implemented into this system by forwarding the cart items and total to PayPal where the user can pay for their goods.
Administration Panel

Another victim of time constraints, the administration panel is a lot of what was originally planned with advanced features left out for the final turn-in. As it stands, the administration panel allows admins to add or subtract stock from a product (each product being listed under its associated category). Admins are also given the power to grant admin to other users of the site and view the contents of registered user’s carts. The features that did not make it into the administration panel were the abilities to add products and categories to the store, the ability to edit existing products in the store, and the ability to change the top sellers, super deal, and featured category items. The implementation of the features that did not make it into the administration system are not that hard to implement and, if implemented, would make the entire system accessible from the web-interface and would erase the need to login to the MySQL database to add products and make some other changes manually.
Overall Impressions
Overall I’m proud of the finished product and developed myself along the way. E-Commerce and Security are intertwined at every level and strong, secure commerce is nothing to scoff at. As pointed out above, not even all of CCC’s issues were resolved or addressed in a semester’s time. Expand our site’s simple concepts to the shopping giant Amazon or the bidding behemoth Ebay and you can see how much work is put strictly into site security to protect their users’ data. Security is a full time job and then some.