App Design Document - Oraza617/ChoiceFreedom GitHub Wiki

ChoiceFreedom App

Prevents choice paralysis by providing users with an outlet to gather the opinions of large to small groups of people to ultimately make a decision

Audience

This app is curated towards almost everyone who has decision paralysis - however, the initial target market is towards people between the ages of 15 and 29 years old. This is because younger individuals are more influenced by other people’s opinions and care to know what they are at that age.

Experience

A user will open up the app when they can’t make a decision on something in their life and will look to the app to see what other people suggest they do. Users will open up the app and be prompted to sign up with their email or sign in with Google or Facebook. Within the app - the user will be prompted to choose between two different images presented to them with a question from another user (Which haircut looks better on me? - images). Every time they click a choice, they get a coin at the top of the screen. In order to post an entry the user will need to have 10 coins. Every new user starts off with 100 coins. 24 hours after the entry they will get the results and see which one of the choices was picked more.

Technical

Models

‘Login” Core Data Model / SDK for Facebook and Google login ‘Username: String’ ‘Password: String’

‘Upload Image’ Core Data Model ‘Image1Uploaded: UIImage’ ‘Image2Uploaded: UIImage’

Views

‘ResultsTableViewCell’ subclass of ‘UITableViewCell’ to show the different entry results ‘EntryTableViewCell’: subclass of “UITableViewCell’ to show active and previous entries

Controllers

LoginViewController MainViewController ResultsViewController EntryViewController

Other

Coin Counter Coin Deductor Image Upload Cycle

WeeklyMilestones

(Update as needed - this might be too optimistic)

##Week 1: 

#Monday Layout workflow Connect with Firebase Learn how to create models and learn how JSON works

#Tuesday Design main view Create the UITabController Learn how to display images

#Wednesday Learn core data and how to use it to store and display images on the app Design results and entries views Learn how to display images from these views onto the main page

Create login flow (Sign in and Sign up views) Connect with FIrebase and get authentication up and running

##Tasks

#Estimated completion time: 7 Days

Layout the entire storyboard before hand and push it - then go in and design it

#Login Process (Screens 1 - 3) (Total: One day) Layout login flow Authentication and sign up page connected to Firebase (Additional feature) - Google and Facebook SDK for “Sign in with Google” and “Sign in with Facebook” features (one day)

#Main Screen (Total: Two days) Layout main view Create the UITabController (one day) Learn core data and how to use it to store and display entries on the app (one day)

#Results (Total: One day) Layout results view (one day) Table view showing results

#Entries (Total: Three days) Layout entries view Table view showing every previous entry (Additional feature: show all the active entries that are still being voted in the app) (two days) New entry - allows the uploading of two images and a question (one day)