Midterm Project

For your Midterm Project, we would like you to come up with
an app idea, and implement it. The app should not be very
complicated, but should demonstrate that you have learned
something in the first month and a half of class. You may
work in groups of 2. With that said, everyone in the group
should be contributing to the project, and should be doing some
coding. We don't want one person to just be "the designer" and
another person to be the "engineer".

Git Usage

You are required to use Git to manage your project progress.
This does not mean one commit per week, or (even worse!) one
commit at the project deadline like most of us have done with
the homeworks. This means each person working in your group
should make several incremental commits over time, to
demonstrate good project management.

You can use the submit.sh script if you want. But
remember, your "submissions" should be incremental. So, for
example, your workflow could be something along the lines of:

If you prefer the usual add-commit-push way of
doing things, go ahead. Just make sure you don't allow Xcode to make a
Git repository for you.

If you're planning on working in a group, you MUST contact Mike by
Wednesday (Feb 11) at 11:59PM. Otherwise, we are assuming you're working in
a group of 1. We have to set up special repos for you guys.

Due Date

The final due date for your project will be Monday
March 2nd at 11:59pm.

Receiving Files

Run git pull to receive your mid folder.

Hand-In

The usual Git way of submitting things.

Checkpoints

You will have some required checkpoints along the
way. This is to ensure that you are on top of your project and
can manage your time effectively. This shouldn't be a very long
or large project, but good time management is key in software
development. That being said, the due date tends to creep up on
you, so it would definitely be a good thing to come to each
deadline prepared.

Checkpoint 1: App Idea/Mockup - Monday, February 16th at 6:30 PM

At this checkpoint, we want to see a rough sketch of your
idea. You should have a design direction, maybe some colors
picked out, and maybe even have wireframes drawn out. To
submit this checkpoint, you must push AT LEAST a
project_proposal.txt inside your mid/project_proposal/
directory. In this file, you should specify your andrew ID, your
app name, and your app idea (described in a few paragraphs). You
should explain all the functionality to intend to cover, and how
you plan to accomplish it. In the mid/project_proposal/
folder, you should also put any wireframes that you wish to include
with your project. These are optional (though well-planned-out projects
with wireframes are historically the best projects).

Checkpoint 2: Working Prototype - Monday, February 23rd at 6:30 PM

Your application should function on a basic level. We're talking, like
50 percent complete. We will check your repos at the deadline and make
sure you're making some decent progress (and are using Git incrementally).
If your app doesn't build or doesn't work or doesn't have anything on
the most basic level, we'll probably want to talk to you after class.
Your app should look like crap at this point. Take the next week to
fix up your app and make it look pretty.

Checkpoint 3: Final - Monday, March 2nd at 11:59 PM

You will present your app to the course staff on this date. So, you
should prepare for a 5 minute presentation on this day to show off
any and all cool features in your app. However, you don't need to
formally submit until 11:59 PM. More information as we get closer
to the date.

Helpful Tips

Your app should be simple. Do not try and make
the next greatest app. That's what your final project is for.
This should be an extremely simple application in both design
and implementation. Use stock components. Use third-party libraries
to make things simple for you. The total amount of time spent on
your application should be no more than 10-12 hours over an
almost 3 week period.

To help you work on this project, there will be no
additional homeworks due until the project is complete, and we
will be having several lectures which you will find
extremely helpful towards making your app. Good
luck!