Link Search Menu Expand Document

Project 1: Meet the Member

Table of contents

  1. Project Description
  2. Setup
  3. Spec
    1. Requirements
    2. Start Screen
    3. Main Screen
    4. Statistics Screen
    5. Extra Credit
  4. Submission

Due: Thursday 10/06/2022 at 11:59 PM

Project Description

Welcome to MDB! This semester, we’ll have over 50 members, including a new recruit class of 13 of the brightest minds on campus. What better way to get to know everyone in the club than to build an app about them? We’ll be building a simple, multiple-choice trivia game to see how fast you can learn everyone’s names.

This is a solo project.

Setup

Navigate to your local MDB iOS TP repo and run

git pull starter fa22/student/main

Spec

Requirements

While the starter code is written for fully programmatic UI, you are allowed to storyboard.

Note that the design of this application is entirely up to you, but make it look as clean as possible.

Also note that this spec does not specify all of the smaller details that would make this a complete app. Build it in a way that would make you actually want to use it, and don’t make it “hacky” just because the spec doesn’t require something.

Start Screen

  • A screen with a button that says start. Upon pressing the button, the user is taken to the main screen.

Main Screen

  • Member Picture: Randomly display a picture of a member on the screen.
  • Name Options: Display four options below the picture as buttons, each with different names that may correspond to the picture (one of the names should actually be correct, but the others can be random – be sure you don’t randomly also select the correct answer)
  • Score: Display a score count for the user – when the user correctly answers, increase the score by 1. Otherwise, just move on to the next question.
  • Answer Display: You can go from one question to another just by changing the image and button values, but there should be a two second delay in between questions where the button the user pressed flashes either red or green (depending on whether they’re correct or not).
  • Timer: Have a timer that limits the user to 5 seconds to answer the question. If they take up the full 5 seconds, the question is counted as incorrect. The user should have 2 seconds to read the correct answer before the next question is displayed. The 2 seconds count down will start when
    • The user tap a answer, whether that’s correct or not, or
    • The 5 seconds countdown ends, whichever comes first
  • Pause Button: When the main screen is first loaded, display a pause button. This button should display “Pause” when the game is running. When clicked on, the game should pause, and the pause button should change its display to “Resume.” When clicked on again, the game should unpause, and the score should reset. Additionally, the game should automatically pause if the user goes to a different screen.

Statistics Screen

  • Statistics View: Add a statistics icon. If the user clicks on this, the game should pause (if currently playing) and the screen should present a window that displays the following statistics:
    • Longest streak of correct answers
    • Result of last three questions (or less if not answered yet)

Extra Credit

For 10pt of extra credits on MP1 (So the maximum possible is 110pt). Use an animated progress bar on the top of the screen to indicate the 5 seconds countdown. The progress bar should start empty and advance to the next level at the end of each second. The progress bar should be able to maintain at whatever its state {0, 1, 2, 3, 4, 5} was during the 2 seconds countdown after the answer is displayed.

Submission

Commit and push all of the project files and submit to Gradescope