Skip to main content

Lab 8: Kick start group project

Overview

In this lab, we will kickstart the group projects.

To receive credit for this lab, you MUST show your work to the TA during the lab, and push it to the github before the deadline. Please note that submissions will be due on Wednesday at 11:59 p.m. in the following week.

Learning Objectives

All of these tie in closely with the group project.

LO1. Learn how to structure an application with a GUI, database, and a middle layer connecting the UI to data, while optionally integrating APIs.
L02. Gain practical experience in containerizing applications using Docker to ensure portability and consistency across different environments.
L03. Develop skills in applying Agile or hybrid methodologies, such as Scrum and Kanban, to manage project tasks and team collaboration effectively.
L04. Learn to design high-level use case diagrams and wireframes to define the application's key features, user interactions, and interface layout.


PROJECT GUIDE

Please read the project guide alongside this writeup to get more information on the expectations for this group project

Part A

Complete Pre-Lab quiz on Canvas before your section's lab time.

Part B

In today's lab, you will work on starting off your project. Your TA will inform you of the approved project idea. You will be working with your team of 4-6 students on this project for the next 4 weeks. You will submit the project proposal by the end of this lab.

Managing Project repository

Only one person per team should accept this GitHub assignment. After the repository is generated, please add your team members as collaborators to the repository. This link has instructions on adding collaborators to a repository.

Clone your GitHub repository

info
You need to accept the invite to the GitHub classroom assignment to get a repository.

Github Classroom Assignment
For the next two steps, make sure to edit the name of the repository after the copying the command into your terminal.
git clone git@github.com:CU-CSCI3308-Fall2025/group-project-<YOUR_USER_NAME>.git

Navigate to the repository on your system.

cd group-project-<YOUR_USER_NAME>

Project Overview

Your application must have a GUI, a database, API data source(optional), a middle layer connecting your UI to your data. The code should be built within Docker containers so they are portable. Make sure to consider these core requirements when designing the architecture of your application. You are required to use the technology stack that you have learned in this course. Refer to the project guide for detailed expectations. If you would like clarifications, please ask your instructor/TA.

Deliverables

Before starting this discussion, assign a scribe who will start a document and take notes on the items listed below. The team will proofread and submit this document as your deliverable for this week. Please refer to Canvas for the due date.

1. Team Number

You have been assigned a team number, on Canvas, that is represented as your recitation section number plus a one-digit identifier. This team number MUST appear on ALL deliverables/submissions posted by your team to your git repository and to Canvas.

2. Team name

You will collectively choose a name for your team to represent a vision you have for the application you're creating. It can be used in addition to your Team Number for all deliverables and presentations.

3. Team Members

List the First & Last name of team members, their GitHub usernames and their email addresses.

4. Application Name

Pick a befitting name to convey the purpose of your application. To be used in all presentations(weekly to your TA and the final one)

5. Application Description

A short (2-3 paragraphs) overview description of the application. Provide enough information to explain what functionality and value your product will provide to users of your application. This should help you to define the scope of your project.

6. Audience

Define the target audience for your application by identifying the characteristics of an ideal user. Clearly articulate the specific problem your software aims to solve for this user group. Additionally, consider the usability and accessibility of the application, ensuring that interactions are intuitive and convenient for the intended audience.

Understanding their background helps shape features and design.

7. Vision Statement

A simple, one or two sentence statement describing the clear and inspirational desired state resulting from your team’s efforts to create your application. Following is a template you might want to use:

For [target customer], Who [statement of the need]. The [product name] is a [product category] that [key benefit, compelling reason to buy]. Unlike [primary competitive alternative], our product [statement of primary differentiation]

Examples

  • Amazon: “To be Earth’s most customer-centric company, where customers can find and discover anything they might want to buy online.”
  • Tesla: “To create the most compelling car company of the 21st century by driving the world’s transition to electric vehicles.”
  • Facebook: “People use Facebook to stay connected with friends and family, to discover what’s going on in the world, and to share and express what matters to them.”
  • CU Boulder: “To be a leader in addressing the humanitarian, social, and technological challenges of the twenty-first century.”
  • IKEA: “To create a better everyday life for many people.”
  • Nordstrom: “Offer the customer the best possible service, selection,quality, and value.”
  • Google: “To provide access to the world’s information in one click.”

8. Version Control

info

You are required to create a public GitHub repository and add all the members of the team to it. Share the link to this repository in this document.

Updated - 10/23/25
Please use the repository given to you in this lab. If you would like to make this repository public, please reach out to the instructor.

This repository should have the following folders:

  • TeamMeetingLogs - The minutes of the meeting with your TA every week will be recorded in a file here. You will be updating the same file every week with the latest updates. Points to include in the minutes would be:
    1. Decisions made
    2. Alternative actions/options discussed
    3. Follow-up items, including agreed-on roles and responsibilities
  • MilestoneSubmissions - All course-related documents, including this one, will be stored in this folder.
  • ProjectSourceCode - The source code and all relevant project documentation for the application will be stored in this folder.
  • ReadMe.md - Refer to the project guide for more information on this.
    • For a detailed view of your repository, refer to the project guide
  • .gitignore - Please remember to create a .gitignore file in your "ProjectSourceCode" folder in the repository

9. Development Methodology

Since this project is scheduled for 4 weeks, we encourage you to use an Agile Methodology. You can also use a hybrid set of practices from different methodologies. For example, you can use Scrum meetings and Kanban boards to track the progress of your project. The important thing is to have a plan and stick to it.

10. Communication Plan

Describe in a sentence or two how your team plans to communicate with each other during the course of the project. You must identify a collaboration tool for team members to utilize for coordination of their work and communication among team members and with the TA. Some tools you could use: MS Teams, Slack, Discord, Google Groups, etc. Please refrain from using IMs for the purposes of this project.

tip

You can track communication for project development tasks as comments on the user story issues you create on the GitHub project board. That will help you remain organized.

11. Meeting Plan

  • Team Meeting: Identify the day(s) and time(s), mode, and location your team has agreed upon for regular meetings. “Modality” refers to how you are meeting (face-to-face), group video chat (like Zoom, Google Meet), etc.
  • Weekly meeting with TA: You will also mention the meeting day, time and location (physical or online) for the weekly meeting with your TA here.
    • Please refer to these instructions for expectations in your weekly meeting with your TAs. Do read the entire section carefully.

12. Use Case Diagram

Create a high-level Use Case Diagram for your application. Your diagram must show at least 6 key features of your application.

This activity should help you identify the end users of the application and the ways they would interact with the system. You can reference the examples covered in class. This will also help you scope out the features of your application. You can refer to this page for more information on how to create a Use Case Diagram.

13. Wireframes

You will create wireframes for each page of the application.

Wireframes are low-fidelity visual representations of the user interface of your application. They are used to plan the layout of the application and to communicate the flow of the application to the team. You can use any tool of your choice to create the wireframes. Hand sketched wireframes are also acceptable. You can refer to this for more information on why and how to create wireframes.

Part C

There is no part C for this lab 🎉

Extra Credit

Identify at least five potential risks related to your project. For each risk, describe its severity and outline suitable mitigation strategies to address it.

Submission Guidelines

Commit and upload your changes

  1. Upload your file(s), containing all the requested information above, in the milestone submissions folder of your project repository.

  2. Run the following commands in the root of the project git directory (that you created).

git add .
git commit -m "Adding project proposal"
git push
  1. Go to Github and verify that all the files/folders for the lab have been successfully uploaded to the remote repository.

Regrade Requests

Please use this link to raise a regrade request if you think you didn't receive a correct grade. If you received a lower than expected grade because of missing/not updated files, please do not submit a regrade request as they will not be considered for reevaluation.

Grading Specifications

  • Not attempted

    • Student has not attempted the lab OR
    • Student has not attended the lab without prior approval
  • Below Expectations - If any of the following conditions are met

    • Part A
      • Quiz has not been attempted OR
      • Quiz has been attempted, but
        • The answer to the questions are partially correct
    • Part B
      • Student has not attended the duration of the lab
      • Student's work was not reviewed by the TA
      • Student has not uploaded their work to the GitHub repository OR
      • Student has not uploaded/created one or more the required files/folders OR
      • Files are not representative of the student's attempt at the activity
  • Meets Expectations - if all of the specified conditions are met

    • Part A
      • Pre-Lab Quiz has been completed
      • Quiz responses demonstrate appropriate understanding of the concepts
    • Part B
      • Student should have attended the duration of the lab
        • Student's work should have been reviewed by the TA and attendance should be marked on Canvas
      • Students have clearly included all the details for #1-7 & #9-11 as requested on the writeup
      • Students have created all the files/folders as requested in the repository for #8
      • Students have included a use case diagram that represents at least 6 key features of the application for #12
      • Students have included clearly drawn wireframes for all the pages of the application for #13
        • These can be hand drawn
  • Exceeds Expectations

    • All conditions in "Meets Expectations" are met AND
    • Extra Credit work has been completed:
      • Students have clearly outlined 5 risks associated with their project
      • Students have listed the severity for each risk
      • Students have mentioned appropriate mitigation strategies for each risk