Skip to main content

Project: Sprint 1 - Team Contract and Project Proposal

For the first sprint of the group project, you will work with your team members to establish your team ground rules and author a proposal for a prototype app.

danger

The provided slip day and resubmission accommodations may not be used on group assignments.

info

You will need a laptop that supports WebGPU to complete this assignment.

Additionally, you will need at least 5 gigabytes of free disk space to complete this assignment.

Learning Objectives

  • Get to know the members of your team.
  • Avoid assumptions and pretending in team work.
  • Author a team contract to document your team's ground rules.
  • Author a project proposal to document your team's project idea and plan for the next sprint.

Help & Support Resources

We want you to get the help and support you need. Use the course's support resources for help with this assignment.

Part I: Team Contract

Working effectively together is every team member's responsibly. If there's a conflict, address it. Don't pretend that the conflict will simply go away. In this part you will establish your team's ground rules and document them in a team contract.

Resolving Conflict

Conflict is a healthy part of any team relationship. If your team doesn't have conflict, then your team members are likely not communicating their issues with the other team members. This is bad. Use a team contract to keep your team dynamic healthy.

When you have conflict, you should follow this procedure:

  1. Refer to the team contract and follow it.

  2. If you resolve the conflict without issue, great! Otherwise, update the team contract to improve your ability to work together moving forward. This is required.

  3. With the updated team contract, try to resolve the conflict.

  4. If that fails, please contact the instructor. I'll ask to meet with all the group members and figure out how we can work together to move forward. I will not help your team unless I see that the team contract has been updated to try and resolve the conflict internally first.

  5. Do not, under any circumstance, avoid confrontation if you have conflict. If there's a conflict, the best way to handle it is to bring it into the open and address it.

The Slacking Team Member

Do not cover for a team member who is slacking. This only rewards their bad behavior. Never put a team member's name down for a submission if they did not contribute. This is a violation of the code of academic integrity.

Tip: If you have a team member who is not contributing, have them work on non-essential work the project. Maybe that's making them responsible for a designing/coding an optional top-level view. If this view doesn't get made, since it was non-essential, that's okay. If it does, great!

Requirements & Credit

Credit: ~20 points

This part is graded for correctness. Meet the following requirements for full credit:

Team Contract:

  • Author a team contract together.

  • At a minimum, your team contract must include the following:

    • The roles your team will create.

      Who will take notes? Who is responsible for submitting the assignment? Who is responsible for checking the assignment's requirements?

      Note: You may not have programmer and designer roles. Every student is required to contribute equally to programming and design. There are no "I will only do Figma because I don't like to code" roles.

    • Your team's policy for attending class and team meetings and the consequences for not attending.

      Note: Significant class time is provided for team meetings. Your policy should likely include a clause for attending class on team work days.

    • The procedure your team will utilize to resolve conflict.

    • The procedure your team will utilize to verify and submit work to the instructor.

    • Your team's policy for handling missing work of a slacking team member.

      Do not cover for a team member who is slacking; do not do their work for them! If a team member is not contributing, have them work on non-essential/non-critical path work.

      Never put a team member's name on a submission if they did not contribute to the submission. This is a violation of the code of academic integrity.

    • Your team's procedure for recording the contributions of each team member for each milestone.

    • Your team's procedure for revising the contract.

  • The team contract must be signed by each team member.

    Each team member must sign their own name to receive credit for this milestone. No signature = no credit.

    If a team member does not sign their own name, do not sign it for them. (This is an academic integrity violation.)

Professionalism:

Professionalism means meeting the client's requirements. Not doing less and not do more. Your submission should meet the requirements specified for this part and no more.

Instructions

  1. Meet your team members and introduce yourselves.

  2. As a team, discuss your assumptions about team work and your expectations for the project.

    Discuss your goals for the project. What are your goals for the project? Do you want an A+? Do you want something for your portfolio? Do you want to learn something new? Do you want to put in just enough effort to pass the class with a C and nothing more?

    Discuss how you and your team will communicate. What are you assumptions about communications? Do you prefer to use email, Apple messages, or Telegram? Do you expect a response within 30 minutes? 24 hours? 48 hours? Do you expect a 5-minute response time an hour before a deadline?

    Discuss class work time attendance and meeting attendance. Do you expect everyone to attend team meetings? Is everyone required to attend class on days with team work time? If you can't make it to a meeting, what's the procedure for letting your team know? Do you just not show? Do you send an email 10 minutes after the meeting has started letting your team know that you're really busy with recruitment/interviews, and that you won't make it?

    Discuss how your team will check your work and submit it. Do you expect people to read the assignment or simply do what they think it's asking without checking? If you think that your grade shouldn't be impacted by your team member's work when it's poor quality, what can you do to prevent poor quality work from being submitted? For example, do you expect people to check their work against the requirements before they submit it? Or does the team collectively check it an hour before the deadline?

  3. Discuss and document your ground rules in a team contract.

    Create a Google Doc for your team contract and share the document with all your team members.

    Feel free to use the following template as a starting point for your contract; you may ignore the provided template and create your own contract from scratch if you wish.

    1. To what goals do we all commit?

      TODO

    2. What are our “ground rules”? (Don't make an exhaustive list—stick with just a few, like "listen when others are talking; don't distract yourself with your phone or laptop", "never interrupt another person when they are talking", and "assume the best in people rather than malicious intent".)

      TODO

    3. By what means and how frequently will we communicate?

      TODO

    4. What are our expectations for attending class work days and team meetings? What are the consequences for not attending?

      TODO

    5. When will we complete our individual work? (10 minutes before the deadline; the day before the deadline, etc.) When will we complete our team work? How will we ensure that we are all contributing equally?

      TODO

    6. What is our procedure for checking our work and submitting it to the instructor? (Zero credit is provided for submitting late work. No exceptions. It does not matter that one person forgot to submit it. It is everyone's responsibility to submit on time. Zero credit is provided for inaccessible submissions, like broken code that will not render in the browser. It does not matter that one person broke the code at the last minute. It is everyone's responsibility to check that the submission is correct before submitting it. No exceptions.)

      TODO

    7. What is our policy for handling the work of a slacking team member? What do we do if a team member is not contributing equally?

      TODO

    8. How will we hold ourselves and one another accountable? What (exactly) will we say to a team member who appears not to be contributing equally? To a team member who fails to deliver what was promised?

      TODO

    9. What do we do when we disagree? What approach to conflict to we all agree to uphold?

      TODO

    10. What roles will we create? Include a description of exactly what each role is responsible for. (You may not have "designer" or "coder roles". Everyone must equally design and code.)

      TODO

    11. What are our procedures for re-visiting this contract?

      TODO

    Add your full name and the date you signed this contract.

    • TODO
    • TODO
    • TODO
    • ...
  4. Sign the team contract.

    Each team member must sign their own name to receive credit for this milestone.

    If a team member does not sign their own name, do not sign it for them. (This can be an academic integrity violation.)

Submission

Submit nothing at this time. Complete the next part and then submit both parts together.

Part II: Project Proposal

For your project, your team will design and implement a prototype app that uses an LLM to support a user with a task. For this part, you will author a project proposal that describes your app idea and includes a few design sketches.

Your team will pick a project topic. You may create a desktop or mobile app.

The app should be substantial: bigger/more complex than the contrast checker, chatbot, and LLM prototypes. A rule of thumb: Take homeworks 3, 4, and 5 and combine them into a single app (and then add a bit more complexity). That's about the size and complexity for this project.

Requirements & Credit

Credit: ~20 points

This part is graded for correctness. Meet the following requirements for full credit:

Project Requirements:

  • The proposed app may be a laptop or mobile app.

  • Your proposed app must use a local LLM to support a user with a task

    • Support need not mean generate. Instead, think assist. How can the LLM assist a user with a task? (For example, autocomplete is a form of assistance.)
    • Remember, our local LLMs can only process and generate text. No computer vision or image generation is possible.)
  • Your proposed app must run entirely in the browser. (You may use the LocalStorage API to store data to remember the user's data.)

  • The proposed app's functionality must be entirely self-contained in the app. (No calls to external APIs or services, like Google Maps, Youtube, or ChatGPT, etc.)

  • The proposed app should support a user with a complex task.

    • Single "one-shot" tasks, like compute the contrast ratio between two colors, are not complex enough for this project.
    • "Productivity" apps, like a slide maker, note taker, etc. are good examples of complex tasks that would be appropriate for this project because they support a user with a complex task (e.g. making a presentation) by supporting many small tasks (e.g. make a slide). (For example, observe the slides side panel or the notes side panel.)

INFO 5440 students only:

Your proposed app must use an advanced browser API feature, like accessing the user's file system or webcam, screen capturing, speech, fingerprint reader, accelerometer, WebGL for 3D graphics, encoding video (i.e. editing video), etc.

Project Restrictions:

  • Your team may pick any project topic you like, with the following exceptions:

    • No "student" centric apps, like reserving office hours, etc.
    • No chatbots
    • No "trackers"
    • No "generators"
    • No shopping apps with shopping carts
  • Your proposed app cannot use any of the following features:

    • No accounts / logins (Do you log in to use the calculator app?)
    • No server-side code
    • No calls to service APIs

Proposal Requirements:

  • Document your project idea in a 1-2 page proposal. The proposal should include:

    • A description of your app idea and the problem it solves.
    • The intended users for the proposed app.
    • A few design sketches of ideas for the proposed app's user interface. (These are just ideas, you are not required to implement these exact designs.)
    • A description of how the proposed app will use an LLM to support a user with a task.
    • A description of how the proposed app will use the required advanced browser API feature (INFO 5440 students only).
    • An explanation on why you believe the proposed app is of appropriate scope for this project. (e.g. Not to big, not too small.)
  • Submit your team contract and proposal as a PDF file to Canvas.

    Do not submit a link to another document. No credit is provided for links to a document/file.

Professionalism:

Professionalism means meeting the client's requirements. Not doing less and not do more. Your submission should meet the requirements specified for this part and no more.

Instructions

  1. Using the same document as the team contract, add a section for your project proposal.

  2. As a team, brainstorm ideas for your project and discuss them. Pick an idea that you think is interesting and of appropriate scope for this project.

  3. Author a project proposal that describes your app idea and includes a few design sketches.

    Your prototype app will likely change in future sprints, and that's okay. The idea of this proposal is to clearly communicate your team's idea and thought process.

    You should be able to hand your proposal to another INFO 4340/5440 team, and they should be able to understand the idea and implement the app based on your proposal.

    Your written proposal should not be longer than 2 pages. (Not including the design sketch ideas.) Any pages beyond the first two, will not be graded.

  4. Create a PDF document that includes your team contract and project proposal.

Submission

To submit your homework, upload a single PDF file to Canvas of your team contract and project proposal.

Thoroughly check your submission and verify that it is ready to be graded. We're unable to accept redos for forgetting to include parts of the assignment in your submission.

All work must be visible in the PDF document for credit; not visible in the PDF = 0 credit; we will not follow links provided in the PDF document when grading. No exceptions.

Contributors

Copyright © 2023 - 2026:

  • Kyle Harms