COMP 20: Web Programming

Spring 2019 Semester Group Project

Team 1: Game of Life - Game to help you with life (random yet important tasks to complete)

Team 2: Meet M3 Halfway - Dedicated to helping you find the perfect location to hang out with your friends

Team 3: Cheeries - Positive news

Team 4: Sublet Genius - Connecting tenants and subletters for college students

Team 5: Noodle News - Choose your news based on bias

Team 6: Good Films Hunting - Helping YOU find Boston Film Scenes easily

Team 7: Tufts Sights on Campus --with internationalization

Team 8: Group&Go - Trip planning for groups

Team 9: Puzzled - Series of puzzles to learn web development

Team 10: Value Streak - Tells you what a video game or video game collection has been selling for on eBay

Team 11: Super Fun Time - Negative content filter for Reddit (NOTE: Chrome Extension)

Team 12: Hungrindr - Recipe finder based on ingredients you have

Team 13: Rekognition Door - Smart door opener using facial recognition (NOTE: involves a "smart" door)

Team 14: Mozzys - Does Carmichael Have Mozzie Sticks?

Team 15: Adventure Points

Team 16: The Ultimate Resource (For Ultimate Frisbee)

Team 17: 2020 Vision - Comparing candidates in 2020 U.S. Presidential Election

Team 18: Guess Where I Am From?

Team 19: Charity Finder - Helps connect you with the charity's you want to support

Team 20: HACK: Harbinger of Aliases and Confidential Knowledge - Checks how much of your information is out there on the web and even if your accounts have been hacked

Overview

You will be working on a team of no more than 5 people maximum to create a prototype pertaining to anything. You read that correctly: no theme requirement this semester! Previous themes include games, music, housing, media, personal finance, healthcare, needs at Tufts, and sustainability. Be bold, don't do same old same old. Please note that a prototype is different than a product: a product is a complete system with documentation while a prototype simulates most of the complete system. I do not expect a full-blown product to be completed by the end of the semester.

Unacceptable Project Ideas

Absolute Requirements

Your team's project must adhere to the following non-negotiable requirements:

  1. Must use HTML5.
  2. Must use JavaScript.
  3. The team must use Git revision control for the project. Each team will be provided a private repo in GitHub under the tuftsdev organization.
  4. Must have desktop and mobile web user interfaces. That is, the user interface is different on the desktop than on mobile.
  5. Must use a server-side framework or technology (e.g., Node.js, Django, Ruby on Rails, Sinatra, Flask).
  6. Must use at least 1 third-party API (e.g., Twilio, Twitter, Dropbox, YouTube, Spotify, Phaser 2D).
  7. Project must be deployed and hosted remotely (e.g., Heroku, GitHub, Amazon AWS, Google Cloud Platform, DigialOcean)

Deliverables

  1. Project proposal and design doc (15 points; due on Tuesday, March 5th). In Markdown format, in a README.md file in your team's GitHub repository, using bullet-points:
  2. Project checkup (10 points; due on Friday, March 29th) - I will be looking for evidence in your team's private GitHub repository that your team started working on the project. It does not have to be elaborate.
  3. Status report 1 (5 points; due on Friday, April 5th) - This file must be in your team's private GitHub repository, written in either text or Markdown format, that outlines (1) what was accomplished during the week, (2) challenges and issues team faced during the week, and (3) your goals for the next week.
  4. Status report 2 (5 points; due on Friday, April 12th) - Please do not overwrite your status report from the week before.
  5. Status report 3 (5 points; due on Friday, April 19th) - Ditto.
  6. The completed project (40 points; ABSOLUTE DEADLINE on Tuesday, April 30th at noon)
  7. Elevator pitch presentation at Semester Group Project Demo Day (10 points; on Tuesday, April 30th at noon at 51 Winthrop Street) - You have less than 5 minutes to explain your project to me and to the judges!

The remaining 10 points of the project (out of 100 total points) will be for individual performance on the team based on your teammates' feedback. That is, underperforming members of a team can receive a lower grade for the final project.

Example Project Proposal

Here is one from spring 2013 from Tyler Lubeck, former head TA of the course (fall 2014). Overall, it is a good proposal but not an excellent proposal: Tyler even made a note of this in the document! The team did not list the features of the project: "Emails/SMS" was listed but emails and SMSes for what? A features is what a user can do; a simple example is "user search for song." The proposal also did not briefly describe the purpose of each API.

Intellectual Property

All works and ideas are owned by the members of the team. I cannot take ownership of any of your work. I do not have stake or equity in any project created in my classes for that matter.

Important Notes

Assessment

Your team will be graded on five factors:

  1. Functionality - Something that works consistently. Remember, a project with fewer features that work is significantly better than one with numerous features, in which some either do not work or are buggy.
  2. Utility - Does your project fulfill a recognized need? Is it also easy to understand?
  3. Originality - C'mon, another running app or calorie counter? Better if your team strives to do something more cosmic.
  4. Technical Competency - Use good programming practices, consistent Git commits and pushes, meaningful Git commit messages used. Egregious data collecting will be penalized.
  5. Teamwork - Does all team members contribute? Having one or two people doing all the work is not good.

Here is the rubric form that will be used on Semester Group Project Demo Day: semester_group_project_rubric.pdf

After the completion of the semester group project, you will evaluate your teammates via 360 degree performance evaluation. Each member of a team will receive the same grade for the semester group project. However in some cases, your participation grade may increase or decrease depending on the evaluations from your other teammates. Your review will not be read by your other teammates.

Semester Group Project Demo Day

The room (51 Winthrop Street) will have a number of tables. Two teams can share a table to showcase their work. I will go to each table and each team shall give me a 5 minutes-or-under demo. Others can walk around and look at other team's work. The atmosphere will be like a fair. There will be people outside of this class in attendance, including professors and even trustees of the University. Please feel free to invite your friends and family to attend. In the past, students have brought their parents to this event. Remember, it should not be a stressful day --it is a day to have fun!

Frequently Asked Questions

Q: "Does the deliverable have to be purely software? Could a team also have a physical product or an IoT device which communicates with the web application? I think using an IoT device could open up some dank possibilities as I'm more of a hardware/ software system type of programmer"

A: The deliverable does NOT have to be purely software but it must require some software, namely web software. This would be fantastic! Dank possibilities indeed. I concede one thing we don't do a good job with in Computer Science (this applies to anywhere, not just Tufts) is having projects that integrate hardware and software, and alas most CS students walk out knowing is how to build apps. Many of the best opportunities out there these days integrate both hardware and software, and knowing only one piece but not the other will do you disservice.

Q: The guidelines say strictly no "social networking" projects. I had a good idea of an app for finding study partners, is this an example of social networking project? I'm expecting you will veto this idea as it will definitely require a user base with some type of profile/communication system.

A: This is a good example of a social networking project that requires more than 1 person to do something. This is also a very saturated idea as it has been done a number of times in the past by teams in Web Programming or in Mobile Development. The problem is right there: "as it will definitely require a user base with some type of profile/communication system."

Q: Can we use stuff other than MongoDB or Node.js (e.g., PHP + MySQL) for semester group project?

A: Yes, of course!

Q: How important is it for us to be able to host our application remotely? Just asking in case we are not able to host it correctly, but have the application working locally.

A: This is now a requirement for the semester group project.

References