The following information is outdated for previous semesters of Hack Challenge! For FA20, in which Hack Challenge is online, please refer to the information in our Discord channel #announcements for timelines and requirements!


You’ve put in a lot of hard work over the past few weeks, and now it’s time to showcase your final project! For the final project deliverable, your group will be required to host all your code on open-sourced public GitHub (not Cornell GitHub) repo(s) (feel free to reach out to your TA if your group needs Git / GitHub help). There will be no CMS submission. We request that you use the general Github and not the Cornell Enterprise Github to host your code, so that we may share all the cool projects that you create. If your group used more than one repo (i.e. one for iOS and one for backend), submit one repo link and in the, link the other repo. For example, if you submit your iOS repository link, add a link to the backend repository and vice versa. In your GitHub repository, please include a README with the following:
  1. 1.
    App Name
  2. 2.
    App Tagline: short one-liner description of your app
  3. 3.
    Link(s) to any other public GitHub repo(s) of your app. If you have one repo for iOS and one for Backend, please link to your backend repo in your iOS README, and your iOS repo in your backend README.
  4. 4.
    Some screenshots of your app (highlight important features)
  5. 5.
    A short description of your app (its purpose and features)
  6. 6.
    A list of how your app addresses each of the requirements (iOS / Backend)
  7. 7.
    Anything else you want your grader to know
  8. 8.
    Note: The link, screenshots, and description will be used for the Hack Challenge website where we will showcase everyone’s final projects



  1. 1.
    AutoLayout using NSLayoutConstraint or SnapKit
  2. 2.
    At least one UICollectionView or UITableView
  3. 3.
    Some form of navigation (UINavigationController or UITabBarController) to navigate between screens
  4. 4.
    Integration with an API - this API must provide some meaningful value to your app. For example, if you’re creating a music app, you could use the Apple Music API. Most of you will integrate with an API written by students in the backend course.



  1. 1.
    Designing an API, using database modeling, and implementing it using the Flask boilerplate code provided - it’s totally fine to write a wrapper for an existing API. Consider what changes you will need to fit the iOS client’s needs and how to model the data appropriately in a database.
  2. 2.
    Deployment to Google Cloud - make sure you start on deployment early! It’s extremely easy to get wrong and can be tricky to debug.