Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
School Rating app
Python Objective-C C
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Python
iPhone/RateSchool
README.md

README.md

About School Rating

The main idea in this project was to provide a way to people communicate and give a rating to schools nearby, helping other parents to choose the best school for their childrens.

I started this project in Foursquare Global Hackaton 2011.

You will find the iPhone app and the Python (Flask) back-end for Google App Engine.

Note: you will see RateSchool along the project, it was the original name.

Configuration

You can run it on your own GAE account.

First, register an app in your Foursquare account. Now, open Xcode project and find a Strings.h file, where you must configure this defines:

 #define RATESCHOOL_BASE_URL @"http://YOU_URL_HERE.appspot.com"
 #define CLIENT_ID @"YOUR_CLIENT_ID"
 #define CLIENT_SECRET @"YOUR_CLIENT_SECRET"

You'll find the client keys in foursquare.py:

 CLIENT_ID = 'YOUR_CLIENT_ID'
 CLIENT_SECRET = 'YOUR_CLIENT_SECRET'

Note: on the first run, you must load the endpoint /schoolCategoryID to get the School category ID (duh!) and store it on memcache. You can schedule to run it once a week to be sure the app are always using the last category ID.

How it works

All the school data are retrieved directly from Foursquare API using the endpoint venues/search. It will be stored in app only when the app endpoint /schoolInfo is called.

Inside iPhone app, users can browse schools, see the details, comment and give upvote/downvote.

Post-mortem

Code

I built the API to receive the HTTP header Content-Type: application/x-www-form-urlencoded and return a JSON body. Yes, it's wrong, I know, shame on me. If I need to rebuild it someday, I will use JSON for everything.

iPhone App Interface

It's not ugly, it's just too much Apple's standard. I started thinking 'How it will look like if I use only iOS components?', so I didn't bother to draw buttons and backgrounds.

It was a good experiment, now I have a better view of how iOS components works.

Marketing

It was the biggest fail in this project. I thought that only by taking part of a Foursquare hackaton, all the app marketing will happen by itself. Big mistake.

I emailed some blogs and sites, but it didn't get any review.

Something went wrong with that request. Please try again.