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 ?

  1. MacOS (for running Xcode)
  2. Download and install Xcode
  3. 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

User Auth + Group Chat

  • Login/Logout
  • Messaging/Chatting capabilities
  • Save messages using Parse Server

MapKit + Image Upload

  • Show business in Map
  • Upload image to Map Pin

Built With

Authors

  • Guillermo Sanchezmembriux
    • Project Lead
    • Initial design/planning
    • MVC Architecture design + implementation
    • Yelp API Integration
    • Parse + MongoDB Integration
    • Messaging/Chat feature
    • Search capabilities
  • German FloresGermantv
    • MapKit Integration
    • Image Upload capability
  • Mark FalconemarkFalcone
    • AutoLayout
    • Lottie Animation Integration
    • SkeletonView Integration
    • Messaging/Chat feature

GitHub

View Github