# Submitting Your Projects

Please follow these instructions carefully! **If your file is incorrectly submitted, you will receive a 0** because we won't be able to compile & run your project and won't be able to grade your project -- so please read through this entire post!

### Naming Your Projects

Please name your projects with the format: **netid\_project#**. For example, if your netID is abc123 and you're working on Project 2, you should name your project **"abc123\_p2"**.&#x20;

## Xcode Playgrounds (Project 1, Extra Credit Project)&#x20;

Name your playground using the correct format when you first create the playground, like so:&#x20;

![Name your playground using the correct format!](/files/-LzmgnH3qqOdvuzDTAw9)

### Zipping Your Playground to Submit

![Compressing the .playground file.](/files/-LzmhSoOPIKFF9aYBTxT)

To zip the playground, right click on the .playground and select "netid\_project#.playground".

This will create a .zip file. **Please name your zip file the same way: netid\_project#.zip** and upload the .zip file to CMS. &#x20;

## Xcode Projects (Projects 2 – 6)&#x20;

Name your project with the correct format when you first create your Xcode project, like so:&#x20;

![Name your project using the correct format!](/files/-LzmdYH_sitAVwfEsFUp)

Doing this when you create the project will ensure that the .xcodeproj and the folder containing your project files will be appropriately named and help us keep organized while grading.

**DO NOT RENAME YOUR PROJECT FILES IN FINDER AFTER CREATING THE PROJECT!** This will cause your entire project to fail to compile. If you need help renaming your project into this format after you've worked on the project, please come to office hours or see us after class.

### Zipping Your Project to Submit

An Xcode project is composed of multiple files. At the top-level, an Xcode project consists of an .xcodeproj file with your project name and a folder with the project name. There may be other folders, but **the .xcodeproj file and the folder with the project named is what you need to submit as a zipfile.**

For example, a project named "p2" might have a file structure that looks like this:&#x20;

![Example file structure for an Xcode project.](/files/-LzmerIe650GyNG534i-)

To zip the Xcode project, select **both the project folder and the .xcodeproj file**, right click and select "Compress 2 Items".

![Compressing the .xcodeproj and the project folder.](/files/-Lzmf0MXDaWvd17eaTNP)

This will create a .zip file. **Please name your zip file the same way: netid\_project #.zip** and upload the .zip file to CMS.&#x20;

#### Projects with CocoaPods (Project 6)

For our last project, we will be using CocoaPods to install the networking library to help our app make calls to the backend and to external APIs. For those projects, make sure you zip everything in the top level folder, including the .**xcworkspace** and **.xcodeproj** files. &#x20;

## Challenge Problems

If you do any of the additional challenge problems, **please include (in your final .zip file) a plaintext file named "README" and list the challenge numbers that you implemented.**

For example, a project might have 4 challenge problems and if you implemented challenge problem #1 and #3, your README.txt will have "1, 3" on it. If you want to go into detail on what you implemented, this would be a good place to do so!

If you do not implement any of the challenge problems, you do not have to attach a README.


---

# 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://ios-course.cornellappdev.com/resources/archived-past-semesters/sp23/cheat-sheets/submitting-your-projects.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.
