# Final

{% hint style="danger" %}
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!
{% endhint %}

## Submission

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 README.md, 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. App Name
2. App Tagline: short one-liner description of your app
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. Some screenshots of your app (highlight important features)
5. A short description of your app (its purpose and features)
6. A list of how your app addresses each of the requirements (iOS / Backend)
7. Anything else you want your grader to know
8. **Note:** The link, screenshots, and description will be used for the Hack Challenge website where we will showcase everyone’s final projects

## Requirements

### iOS

1. AutoLayout using NSLayoutConstraint or SnapKit
2. At least one UICollectionView or UITableView
3. Some form of navigation (UINavigationController or UITabBarController) to navigate between screens
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.

### Android

### Backend

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. Deployment to Google Cloud - make sure you start on deployment early! It’s extremely easy to get wrong and can be tricky to debug.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hack-challenge.cornellappdev.com/submissions/final.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
