Zayna is a shopping app similar to Amazon but using Parse as its backend.
[Evaluation of your app across the following attributes]
- Category: Shopping/E-Commerce
- Mobile: This app would be primarily developed for mobile but would perhaps be just as viable on a computer, such as Ebay or other similar apps. Functionality wouldn’t be limited to mobile devices, however mobile version could potentially have more features.
- Story: displays a list of available piece of cloth in the shopping app. User can choose whichever they want and place an online order.
- Market: Female adult-age group
- Habit: This app could be used as often or unoften as the user wanted depending on shopping habits, and what exactly they’re looking for.
- Scope: First we would start with posting availabe items for sale and customer based on needs, then perhaps they can place an online order.
Required Must-have Stories
- Customers can log in their account
- create an icon for the app
- create a splash screen and wait for 20 sec each time the app starts
- create a server and user table to create an account or get access to an existing account
- create UI for login activity.
- connect the app to the server and user table
- make MainActivity persistent after user logs in.
- Customers can see a list of available cloth for sale
- create bottom menu with three fragments such as Catalog, Basket and Profile.
- create an item layout for each item.
- send a request to the server for posted items.
- Customer can go to checkout and place an online order.
- Customer can see thier profile which includes information such as address, life-time orders and so on.
Optional Nice-to-have Stories
- Customers can add items to a bustket
- Customers can create an address book where they can store thier multiple addresses.
- Customers can cancel orders
- Customers can pay online for orders
- Login screen - User signs up or logs into their account. Upon Download/Reopening of the application, the user is prompted to log in to gain access to their profile information to be properly matched with another person.
- Catalog screen - User can see a list of items for sale and select the quantity of the item and add it to a basket.
- Checkout screen - User can see a list of items in the basket and choose address and payment methods.
- Profile screen - User can see thier profile which cosists of thier basic personal information along side with thier life-time orders and address books.
Tab Navigation (Tab to Screen)
- Catalog screen
- Checkout screen
- Profile screen
Flow Navigation (Screen to Screen)
- Forced Log-in -> Account creation if no log in is available.
- Cloth Selection (Or Queue if Optional) -> send a request to server to send back a list of items for sale along side with each item's information.
- Checkout -> show a list of items in thebasket, give user selection of addresses from thier address book, and ask user to fill payment information.
- Profile -> request to a server to send back currentuser info along with thier life-time orders
[This section will be completed in Unit 9]
Property | Type | Description |
---|---|---|
objectId | String | unique id for the user post (default field) |
itemName | String | name of the dress |
description | String | describes item |
numberOfSold | Number | # of item sold |
rating | Number | rating of item rated by customers |
createdAt | DateTime | date when post is created (default field) |
updatedAt | DateTime | date when post is last updated (default field) |
- Home Feed Screen
- (Read/GET) Query all posts where user is author
let query = PFQuery(className:"Post") query.whereKey("author", equalTo: currentUser) query.order(byDescending: "createdAt") query.findObjectsInBackground { (posts: [PFObject]?, error: Error?) in if let error = error { print(error.localizedDescription) } else if let posts = posts { print("Successfully retrieved \(posts.count) posts.") // TODO: Do something with posts... } }
- (Create/POST) Create a new order on a post
- (Delete) Delete existing order
- (Read/GET) Query all posts where user is author
- Create Post Screen
- (Create/POST) Create a new post object
- Profile Screen
- (Read/GET) Query logged in user object
- (Update/PUT) Update user profile image