Yelpy iOS Clone with Swift
Tags: ios
yelp
clone
teach-ios
Parse
Back4App
MongoDB
CodePath
Source
: hackmd
Yelpy
Developed from scratch a simple clone of Yelp app that we use to teach CodePath’s iOS Curriculum utilized by more than 600+ students every year. This is an iOS (Swift) that integrates Yelp Fusion API, custom MongoDB + Parse backend server hosted on Back4App. This project is to demonstrate what it takes to make a simple clone of Yelp in the course of 6 weeks.
Setup/Installation ?
- MacOS (for running Xcode)
- Download and install Xcode
- Open
Yelpy.xcworkspace
and run it
Yelp API
We used Parse (hosted on Back4app) as our backend to handle login/register from the iOS app and also the group chat capabilities between users.
Yelp’s Fusion API was used to gather data from businesses.
Network
POST
/search – retrieve businesses from a given search query in SF
Database
We used mongoDB and Parse server, hosted on Back4App to manage our data for the application. This helps students focus more on how iOS works connecting to a database and not get distracted or overloaded with learning backend development.
Schema
Below is the database schema for our simple MongoDB (managed by parse and hosted by Heroku and Back4app).
User
Name | Type | Descrpition |
---|---|---|
username | string | n/a |
password | string | user password (hashed) |
created_at | date | when the user was created |
updated_at | date | when the user was recently updated |
Message
Name | Type | Descrpition |
---|---|---|
text | string | content of message |
user | user (pointer) | user object reference |
created_at | date | when the message was first sent |
updated_at | date | when the message was recently updated |
Project Demo Features
Below are the following features that are capable for the app:
API Data Presentation + Animations
-
Load data from Yelp API + Search Bar
-
Animations using Lottie and SkeletonView
User Auth + Group Chat
- Login/Logout
- Messaging/Chatting capabilities
- Save messages using Parse Server
MapKit + Image Upload
Built With
Authors
- Guillermo Sanchez – membriux
- Project Lead
- Initial design/planning
- MVC Architecture design + implementation
- Yelp API Integration
- Parse + MongoDB Integration
- Messaging/Chat feature
- Search capabilities
- German Flores – Germantv
- MapKit Integration
- Image Upload capability
- Mark Falcone – markFalcone
- AutoLayout
- Lottie Animation Integration
- SkeletonView Integration
- Messaging/Chat feature