HW4: Chrome Extension Enhancement
DUE DATE: Sunday, April 20th, 2025 at 11:59 PM.
TIME ESTIMATE: We estimate this will take around 10-15 hours depending on your experience level and whether working individually or in pairs.
SUBMISSION: Submit your work on Gradescope with the required components detailed below.
FEEDBACK LINK: At any moment in the homework, if you have non-urgent feedback to provide, don’t hesitate (if it is useful you will earn participation credit!): Homework Feedback Form. Note: This is to provide feedback for future improvements, and not to ask questions or clarifications about the homework. (For instance, if you something was confusing, and it took you a while to figure out, but you eventually figured it out, you might provide feedback that if it had been explained differently it would have been easier to understand.)
In this assignment, you will enhance one of two existing Chrome extensions (Lunch Lotto or Nara) by adding new features. These extensions were developed over a period of 96 hours, during the MCIT Hackathon 2025, by students who had only a semester of programming experience. These projects won the top prizes and are representative of both strengths and weaknesses of the students’ programming skills.
Within your final project team, you can work either individually or in pairs (pair work is recommended to gain experience with collaborative GitHub workflows). Pairs must be formed with students from the same team.
Each final project team of 4 members will usually work on 2-4 different extensions.
- You can work individually or in pairs
- If working in pairs:
- One person will fork/copy the repository
- Both team members must make changes using branches and pull requests
- Each team member must work on different features
Choose one of the following extensions to enhance:
- Lunch Lotto: https://github.com/CIS-3500/lunch-lotto-starter
- Nara: https://github.com/CIS-3500/nara-starter
- Individual work: Implement 2 new features
- Pair work: Each team member implements 2 new features (4 total)
- Important: Team members must work on different features; no duplicate work allowed
Make sure to change the version number to indicate you are working on a new version of the extension.
- Fork or copy the chosen extension repository
- Create feature branches for each new feature
- Implement your features
- Create pull requests for your changes
- Merge your approved changes
- One team member forks the chosen extension repository
- Both members:
- Create feature branches for their assigned features
- Implement their features
- Create pull requests for review
- Review each other’s pull requests
- Merge approved changes
Submit the following on Gradescope:
GitHub Repository
- Link to your forked repository
- Add your group member (if working in pairs)
Feature Documentation
- For individual work:
- List and describe your 2 implemented features
- For pair work:
- List features implemented by team member 1
- List features implemented by team member 2
- For individual work:
Demo Video
- Create a video (max 1 minute 30 seconds) using Loom or YouTube
- Video must include:
- Introduction of team member(s)
- Identification of chosen extension
- Chrome extension page (in the browser) showing your version
- Demonstration of all implemented features (2 for individual, 4 for pair work)
Your submission will be evaluated based on:
- Successful implementation of features
- Proper use of Git branches and pull requests
- Quality of code and documentation
- Clarity and completeness of demo video
- Collaborative workflow (for pair work)
- Start early to allow time for review and refinement
- Use meaningful branch names and commit messages
- Document your changes clearly in pull requests
- Test your features thoroughly before submission
- Ensure your demo video is clear and concise
If you have questions about the assignment, please post them on the #homework04 Slack channel rather than emailing the instructors directly. This allows other students to benefit from the answers as well.