Skip to content

Pod41/ZaynaShoppingApp-Sprint2-3

Repository files navigation

Zayna

Table of Contents

  1. Overview
  2. Product Spec
  3. Wireframes
  4. Schema

Overview

Description

Zayna is a shopping app similar to Amazon but using Parse as its backend.

App Evaluation

[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.

Product Spec

1. User Stories (Required and Optional)

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

2. Screen Archetypes

  • 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.

3. Navigation

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

Wireframes

[BONUS] Digital Wireframes & Mockups

[BONUS] Interactive Prototype

Schema

[This section will be completed in Unit 9]

Models

Post

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)

Networking

List of network requests by screen

  • 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
  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages