Description
In this assignment you will be building a Shopping app called ShopME.
Initial (Home) Screen:
It will show a screen with the shopping categories (initially 8) and other 2 user items to reach
recent orders and cart directly. Navigation Controller should be used to have back navigation
capability from each new screen opened. Set the navigation controller title view to app logo.
Total 10 items (first two are for user convenience)
1) Recent Orders 2) Cart 3) Grocery, 4) Clothing, 5) Movies, 6) Garden,
7) Electronics, 8) Books, 9) Appliances, 10) Toys
View:
• UICollectionView as grid layout (each item with size 125 x 125).
• Each item need to be designed as “CategoryCell” with an image and a label under it.
• Landscape mode should work too.
• Use background image with some high transparency.
Functions:
• Clicking each category opens corresponding category page.
• Recent Orders will open recent orders page with the list of only last 10 orders done by the
customer.
• Cart should go to the cart page.
Category Page:
View:
• Should be designed as UITableView.
• The name of the category will be seen at the top (as title).
• Cart should be shown as a right bar button item on the navigation bar with a label on it
(as subview) showing the current item count in the cart.
• List of items in that category will be listed.
• Each item should be customized as a cell with image (on the left), labels showing name
(with 1 line and background color), description (3 lines) and price (in the middle) and Add
button with an image of “+” on the right.
Functions:
• Clicking “+” button in each item will add it to the cart and the cart label on the top right
will be updated with the updated item count in the cart.
• Go back to Home page.
• Go to Cart by clicking Cart button.
Shopping Cart page:
View: The list of items in the cart (UITableView).
Each cell will show name, subtotal (unit price x count), count and
increase/decrease arrows.
There should be sections with each shopping category.
Total amount that needs to be paid.
Total item count in the cart.
Buy and Empty buttons.
Title as “Your Cart”
Functions:
1. Edit the number of each item by clicking increase and decrease buttons.
2. Remove an item: This will be done by setting the current count (of each item) to 0. When
item count is 0, it should be removed from the cart and cart should be updated.
3. Empty cart: Remove all.
4. Buy:
• Alerts the user about the price with “Cancel” and “Place order” options. Cancel will
only close the alert and do nothing.
• Place order option should record the order to recent orders page with only item
count and total price information and with date of the purchase.
• Empties the Shopping cart.
• Goes to Home screen.
Recent Orders page:
View: The list of only last 10 orders (UITableView) sorted by date. Most recent one first.
Each cell will show only item count purchased, total price and date of the
transaction.
Functions:
1. Remove the selected order by clicking Edit button. If user did 11 orders and only last 10
orders are shown in the list, removing one will show 9 orders. It does not need to fill
removing item’s space with 11th order.
Manager page:
View: You can reach this screen from the home screen with a right/left bar button
named “Manage”. The page will let you enter a new shopping item, with a
category currently defined or with a new category. Use your judgement on the
design (no screenshot provided) and the necessary UI items needs to be used
and necessary information needs to be received from the user (image, name,
description, price etc.).
Functions:
1. Use imagePicker to receive the item’s image from user, and if a new category will be
defined to get category image from user. Once all the necessary information is entered,
by clicking “Add” the item will be entered to the defined category. If there is no matching
category is defined, an error should be shown, unless it is submitted as a new category
and image. User can go back to Home screen any time and new added items should be
seen in the categories added or under the new category added. New category should
also be seen in home screen with its image.
General Guidelines:
• You need to use Classes like Category, CategoryItem (For UI) subclass of
UICollectionViewCell, ShoppingItem, ShoppingItemCell (For UI) sublass of UITableViewCell
etc.
• You can use stackviews for auto layout if needed.
• The app should look similar for every iPhone/iPad type (In home screen number of items in
each row can be different per design of Collection view).
• It should work for both landscape and portrait.
• Shopping Cart page will need to have Home button as navigation bar right item (with unwind
segue).
• Some image resources are provided but you are free to create/use your own. Make sure,
every category has at least 5 items with name, image, some description and price. For the
image resources provided for some shopping items, you can set your own name, description
and price. Make them reasonable.
Submission Guidelines:
• Make sure your app is running before submitting.
• Submissions should be made in Blackboard before midnight on 3/4. Up to 3 submissions are
allowed.
• Up to 2 days late submissions only.
• Make sure all your images and other resources used are inside the project folder. When
copying an image inside the Assets folder, always make sure “copy” is checked and select
the target as the project.
General Grading Criteria:
1- Appearance: (50%)
a. Initial Screen
b. Category Page
c. Shopping Cart Page
d. Recent Orders Page (sorted orders)
e. Manager Page
2- Functionality: (50%)
a. Adding items to shopping cart
b. Updating item counts in shopping cart (Removing item when item count drops to 0).
c. Emptying the cart
d. Buying the order and placing it to recent orders page
e. Deleting Orders in recent orders page
f. Error Alerts
g. Adding a new item in Manager page
Some screenshots from run time.
1) Initial Screen with navigation bar having title view with logo of the app. The first two items
are “Recent Orders” and “Cart (X)” where X is current item count in the cart. During the
shopping, anytime you come back to this screen, X should show the right item count
currently in your cart.
2) After clicking a category (except the first two items), it will open category page, with
corresponding title. Example shows “Grocery” page opened. There should be cart button
as navigation bar right button with a label as subview on it showing the current item count
in the cart. As “+” buttons clicked for each item, the cart should be updated.
3) Clicking Cart icon in Category page or in Home page will present the ShoppingCart page
with items listed with sections. The count of each item should be able to be edited with
increase and decrease arrows. Subtotal and Total price amount in the cart should be
updated as well. If one item count becomes zero, it should be deleted from the cart and
current view should not show it anymore. An alert here should inform the user about the
item deleted, saying “item X deleted”.
4) Buy button should ask either “Cancel” or “Place order”. Place order should record the order
info in recent orders page and empty the current cart, and go to home screen.
5) Clicking “Recent Orders” in home screen should present a new screen with recent 10
order information. Only item count, total price and date of the transaction should be shown.
There is an Edit button as right bar button which allows deleting the orders in the list.