Skip to content
Mavey Ma edited this page Mar 8, 2018 · 2 revisions

Group Project for iOS Programming via CodePath

Overview

In addition to the mini-apps assigned each week, we will also have a collaborative course-wide project. The class will be broken up into groups of 3 students each, and every group will select a larger project to scope, design and build over the course of the class. At the end of the course, we will do a demo day showcasing all of these projects.

Project Guidelines

For the group project, each team is able to select the project that they want to build for the course. However, certain requirements and guidelines for the project need to be considered in order to ensure the project will fit within the curriculum presented. Requirements of the project:

  • Must have at least three separate screens supporting user interaction
  • Must be data-driven with dynamic information or media being displayed
  • Must use a RESTful API to source the data that is populated into the application
  • Must use local persistence either through files, preferences or SQLite

In addition to these, a few other guidelines to consider given the course material:

  • Projects should not require complex animation or drawing (i.e games or visualizations)
  • Projects should not try to do too much given that the project should be able to be developed in just a few weeks.

Product Evaluation Criteria

When evaluating projects with your team in addition to the guidelines above, consider the following:

  • Story: How compelling is the story around this app once completed?
    • How clear is the value of this app to your audience?
    • How well would your friends or peers respond to this product idea?
  • Market: How large or unique is the market for this app?
    • What's the size and scale of your potential user base?
    • Does this app provide huge value to a niche group of people?
    • Do you have a well-defined audience of people for this app?
  • Habit: How habit-forming or addictive is this app?
    • How frequently would an average user open and use this app?
    • Does an average user just consume your app or do they ceate?
  • Scope: How well-formed is the scope for this app?
    • How technically challenging will it be to complete this app by the end of the program?
    • Is a stripped-down version of this app still intereing to build?
    • How clearly defined is the product you want to build?

Our goal is to infuse with you not just technical but also product knowledge too. You need to be able to tell a great story to convince people of your ideas. If you're trying to raise funding for a startup idea, you'll need to sell investors on your story. If you're trying to recruit other engineers, you need to be able to articulate these points to convince them to join you.

Remember that you can have a great story but small market. Try to assess the strengths of one criteria against the other ones.

Project Process

Picking a Project

The first thing to do is identify the project you want to build. Keep in mind the Project Guidelines and Product Evaluation Criteria listed above as you settle on an idea.

Planning and Scoping

The next focus is planning the project with your group. The best way to do this is by writing out user stories that describe how a user will interact with the app.

Design and Wireframing

The next step is to begin designing the user interface and user experience for the project based on the scope and user stories. This will involve creating low-fidelity wireframes that document the various screens as well as the key components and interactions that take place within the app.

Check out our wireframing tools page for more details and then pick a wireframing tool to design the UI and UX for your product.

Implementing

The final weeks will be spent developing the app that was planned and designed by your team. First steps include identifying the screens, models, and libraries that will be used within your app. What are the API endpoints? Which data models will you need? Which interactions and functions require external libraries? Next, the team will collaborate on the implementation using Git as a version control system.

Be sure to use the Google groups forum to ask questions and use office hours to get questions answered. Also be sure to meet up with your team and communicate effectively in order to delegate tasks. If you run into technical challenges, let us know so we can help.

Demo Day

Resources

  1. Planning the Demo Day event
  2. Creating and app demo video

Overview

Each team will showcase the project they have built and give a tour to the class in a brief 5-6 min presentation to review the work we have done over the course of the class. On Demo Day, each team will present quickly on various aspects of their projects and introduce the class to what what they were able to build. The presentation should include:

  • Title and Tagline (What is your product called?)
  • Introduce the Team (Who built this product?)
  • Inspiration (Why build this project?)
  • Live Demo (Show the project to the class)
  • Technical Challenges (What interesting technical challenges did you solve?)
  • What's Next? (Next features for this project)

Group Project Q&A

How long is each team's presentation?

Each team's presentation should take 5-6 minutes including explaining their product, slides about the details, and a live demo.

Should one team member present or should all of them talk?

Depends. Some teams will switch off in different sections (intro is one, demo is another member). Others have one person speak the entire time.

Is it recommended to have a slide deck prepared?

Slide decks are optional as a complement to your presentation of the product and to communicate the context for why your app is interesting, but the main focus of the presentation should be a live demo of the app.