Initial launch stuff happens, we get the Config object, authenticate the user, etc. If the User is not authenticated we show the Facebook button and allow them to login.
This is only shown the first time the user launches the app. We explain the concept of the app in a few slides. For example:
- Check out upcoming wine events
- Match with other Vinters.
- Chat with like minded people.
A tabbed view, the user is taken here after authentication. that starts off with EventList
List of up coming events to join. This is a child of HomeView.
All the details about an event. Enter here from EventListView.
List of people the user can like or dislike. If the users like eachother they are 'matched' and we open up a chat room in the ChatListView.
The profile of another User in our app. Users can see profiles of other Users through the EventList or through Bagels in the BagelListView.
List of people the user can chat with. This list is comprised of people you have matched with and people who are in the same event with you, and have sent you a message or you have a sent a message to.
Enter here after tapping on a row in ChatListView.
Your profile, this is where you set your biography, upload your profile pictures and manage your interests.
This is where the User adds in their payment information. Credit Card, Paypal, Bitcoin, Yencoin, etc.
After buying a ticket for an event, this View shows up, asking you to confirm your purchase,
Shows a full screen image. Allow swiping right/left to navigate between images in an album. Quite a simple view.... for now.
###New User
- SplashView
- OnBoardingVIew
- ProfileView
- HomeView
###Returning User
- SplashView
- HomeView
###Buy Ticket (No Payment Method)
- HomeView
- EventListView
- EventView
- AddPaymentView
- PaymentConfirmView
###Buy Ticket (Has Payment Method)
- HomeView
- EventListView
- EventView
- PaymentConfirmView
###Profile Updating
- HomeView
- ProfileView
###Handle Bagels
- HomeView
- BagelListView
- BagelView
###Chatting Flow
- TabView
- ChatListView
- ChatView
###Event Creation
- We, IC Studio, search for Wine Tasting Events.
- We contact the Event host and ask if we can list it in our app.
- We copy textual information from the event, name, description, start time, end time, address.
- We get pictures of the events somewhere.
- We run an internal tool that uploads the pictures to S3 and writes the Event object into Firebase.
Similar to User objects in Hopsee. wineName is like display name, except the User gets to choose their wineName from a list of options.
[userId]
userId
biography
firstName
lastName
birthDate
wineName
gender
isBanned
isJerk
email
imageList
0
1
2
3
interestList
0
1
2
3
Wine tasting events that the User's can join.
[eventId]
eventId
name_en-US
name_zh-HK
startTime
endTime
address_en-US
address_zh-HK
description_en-US
description_zh-HK
maxPeople
imageList
0
1
2
3
website
Similar to PartyMember in Hopsee. Just here to list the members of an Event. An event can have multiple members. A User can join multiple events.
[eventId]
[userId]
userId
wineName
gender
imageList
0
1
2
3
Things that a User has liked on Facebook.
[interestId]
interestId
name
imageUrl
Similar to the ChatMessage objects in Hopsee. Except we have time and type fields. Possiblility for voice/images/gifs messages later.
[chatId]
[chatMessageId]
chatMessageId
parameters
senderId
senderName
type {Text, SystemMessage}
content
time
Just like ChatMessage, these are here to indicate that they haven't been read by the User. Once the user has clicked into the Chat, we clear out this path.
[chatId]
[chatMessageId]
chatMessageId
parameters
senderId
senderName
type
content
time
Same as in Hopsee. These objects are processed by the back end and created by the clients. Once the back end has finished working with them they are deleted.
[notificationId]
deviceToken
deviceType {iOS, Android}
locKey
locArgs
userId
A list of userIds that a user has liked.
[userId]
[likedUserId]
likedUserId
Describes the different price points for event tickets. Examples "$140 for 1", "$238 for 2", "$300 for 3".
[eventId]
[eventPricingId]
price
ticketCount
A list of other Users a User can match with.
[userId]
[otherUserId]
userId
wineName
imageList
0
1
2
interestList
0
1
2
biography
A list of chat rooms that a User can enter. These can be group or one on one chats.
[userId]
[otherUserId]
chatId
chatName
imageUrl
userId
Configuration object to control the app remotely. Just like in Hopsee.
terms
minIOSBuild
minAndroidBuild
googleWebApiKey