Developed a robust application to trade meal swipes at UCLA
Created intuitive and modern UI with an easy learning curve
Implemented industry standards with Parse to store and retrieve data and Sinch to facilitate instant messaging between users
7. Buying Swipes
Select restaurants to dine at
Search listings with custom time range
View details for each listing
Message sellers for an exquisite meal on the
hill
12. front end - UI
Simple. Clean. Mouth-watering.
Flat design for a modern look.
Easy-to-understand layout.
Vibrant colors and images.
User Interface Design
13. front end - UI
Parse database
Users, Offers, Messages
Backend Design
14. front end - UI
Created during first login
Facebook User ID
Authentication Data
Facebook First Name
Backend Design - Users
15. front end - UI
Created during Offer Posting - Sell Activity
Seller ID
Restaurants
Time Range
Quantity
Price (each)
All offers are deleted at 4AM each day using Parse Background Jobs
Backend Design - Offers
16. front end - UI
Problem:
Parse is good at storing and retrieving data, but
it sucks at connecting users in real time.
Solution?
Sinch - Messaging Service
Instant Messaging between users
Backend Design - Messages
19. Future Features
Payment API Integration
Expand to Other Schools
Location Dependent Check-In System
Self-relying User Database
Editable Listings
Sort Listings with Various Criteria
Intro: Scenarios (mdoe)
Imagine yourself as an upperclassmen, midterms are coming up and you don’t have time to get groceries, cook your food and then wash your dishes.
You live on the hill and you invited a friend to come study with you. It’s dinner time and you’re both hungry, but you’re on a regular meal plan.
Why is SwipeMe needed? (joy)
Students have Regular meals plans, they want to swipe friends/family and are unable to
Students with premier plans have a lot of swipes that go to waste at the end of the quarter
UCLA food is awesome - people visiting might want to try it or people who move off the hill miss it dearly
Why would it be successful? (mdoe)
Easy to use, get results fast (dont have to plan ahead)
Large user base is provided with a streamline method
Large audience is concentrated in small area
No big competitors
What makes it different? (joy)
Free & for sale (not only swipes), swipe swap (not actively used) on facebook are online forums
This app is easily accessible as it is a mobile
Consistent formatting, easy searching
Allows filters (buy vs. sell, time, price)
branch into how you use it
Before we go into details about the functionality first we will show you how easy it is to use
Show how to post listings with customizable options
Show how users will search for your listings
Show how potential buyers contact you
KYLE’S SLIDE
Show how to select restaurants
Show how to remove restaurants from buy list, choose time range
Show how to view details of each listing
Show how to message sellers
Show how to select restaurants
Show how to remove restaurants from buy list, choose time range
Show how to view details of each listing
Show how to message sellers
Show how to select restaurants
Show how to remove restaurants from buy list, choose time range
Show how to view details of each listing
Show how to message sellers
Show how to select restaurants
Show how to remove restaurants from buy list, choose time range
Show how to view details of each listing
Show how to message sellers
Show how to select restaurants
Show how to remove restaurants from buy list, choose time range
Show how to view details of each listing
Show how to message sellers
Marketability and appearance is a large part in creating a successful app
We had to understand both our user base and what successful food vending apps are currently out there, such as Postmates and DoorDash
Our biggest selling factor is convenience, which needed to be reflected in our front-end.
A flat, sleek, and modern design captivates the current generation, especially college kids
It also has to be easy to understand and easy to use.
To accomplish this, presentation through vibrant colors and pictures was a huge part in developing the UI.
We also simplified user interaction by utilizing a very simple and logical control flow consisting of three steps
User chooses restaurants on an enticing home screen in order to buy or sell swipes
User chooses available times and price on a simple form page
If user is selling, he/she can check messages for offers
If user is buying, he/she can message sellers on a listing page
We champion convenience and accessibility in our app, appealing to a wide user base and keep them coming back!
We used a database service called Parse to implement our database
Parse allows us to store data in the cloud easily using its Android API
Parse also provides an API to manage user logins through Facebook Login
Our database implementation stores three data types: Users, Offers, and Messages
We use Facebook login to create and authenticate users. On first login, a new user is created in the Parse database and their information is uploaded to the database.
Information stored include the userID and first name
UserID is used to implement authorization within the app, and first name is used to identify users in offer details and messaging
Offers are created and uploaded to the Parse database via the sell functionality, and users can delete the listings through the My Listings view
Queries - Used in My Listings and Buy Activity
My Listings - searches for all offers created by the current user
Buy Activity - all offers with at least one restaurant match, time range overlap, excluding a user’s own offer
Sorted by price - lowest to highest
Users are not allowed to message themselves, so buy queries take out one’s own offers
All offers are deleted at 4 AM each day using Parse Code and Background Jobs
Uploaded customized Javascript code to Parse and scheduled to run at 4 AM every day
Parse is good at storing and retrieving data, but it doesn’t provide a means to connect users to each other in real time.
We use Sinch to implement instant messaging
Takes care of sending and receiving messages
Sent messages are stored in the Parse database so users can retrieve message history
Contains information such as message text, sender id, recipient id, and sinch id
KYLE’S SLIDE
Modified Sinch’s (Messaging API) normal behavior in which it allows users to message all users
Integrated it with our application for messaging capabilities
WIP
Nobody had any android development experience to start.
Had to learn how android OS works, android SDK, XML styling, etc.
Make a functioning app in 3 weeks
Push notifications
Still doesn’t work. Integrate Parse Push with Sinch
Dynamic Dining Hall Times (joy)
During holidays and breaks dining hall times are changed drastically and our application does not account for this
Primitive Time Filtering (michelle)
In order to create a robust (completely accurate) posting, a user would have to create multiple posts for the various dining hall time periods
example: Bplate and Bcaf from 6pm - 2am in one posting
all students can infer this means that they are selling at bplate and bcaf from 6pm - 8pm and from just bcaf from 8pm - 2am
but to be completely accurate, they would have to create two separate posts. the app does not separate the posts automatically
Facebook exclusive (joy)
people without facebook accounts can’t log in and use our app
Android exclusive
a majority of students at ucla use IOS
split this, each say one future feature
Payment API Integration
example: venmo
Expand to Other Schools
use GPS to automatically show listings in your area/school
Location Dependent Check-In System
a user can say “i want to buy a swipe right here right now” by checking in with GPS
Self-relying User Database
non facebook exclusive
Editable Listings
under my listings, instead of just a delete button there is an option to edit the listing as well
Sort listings
sort by lowest price, location preferences, quantity, etc from buy listings page