Go to file
2017-08-27 17:54:16 -04:00
README.md added fp 2017-08-27 17:54:16 -04:00

cs4241-16b-FinalProject

For your final project, you'll implement a course project that exhibits your mastery of the course materials. This project gives you an opportunity to be creative and to pursue individual research and learning.

General description

Your project should consist of a complete Web application. The site must exhibit facets of the three main sections of the course material:

  • Static Web page content and design. You should have a project that is well-designed, easily navigable, and exhibits good human-computer interaction.
  • Dynamic behavior implemented with JavaScript and possibly other JavaScript librarires.
  • Server-side programming. Typically this will take the form of some sort of persistent data and possibly server-side computation.

Additionally, you should incorporate features that you independently research to add to your project.

Example Projects

The following list describes a few examples of what I would consider to be good projects. Excellent projects serve someone: define your users and stakeholders. Don't just create a webapp with a pile of features. I encourage you to identify projects that will have impact.

Here are some ideas:

  • Interactive data visualization: Find an interesting dataset, then visualize it using d3.js. See visualizations on the New York Times, 538, or mbtaviz (wpi grads!) for inspiration.
  • WPI Infrastructure: There are a lot of things that could be done better on the WPI school website. Find something you care about and make a prototype that shows how it could be better. Avoid course schedulers or course survey browsers -- these already exist!
  • (bonus) Infrastructure ideas: Course sizes are growing, making it more difficult than ever for professors to learn about all the students in their course. Create a webapp that provides a better interface to the students in the course (search, filtering, with profiles almost like Facebook) using Banner data. Alternately, create a flash-card game that uses student data (pictures, names) to help professors get to know their students.

Logistics

Team size

Students are encouraged to work in teams of 2 or 3 students for the project. This will allow you to build a good project without expending an excessive amount of effort. While I would expect a team of three students to produce a project with more features, I expect a single person project to exhibit all of the required facets described above.

Schedule / Deliverables

  • November 21: You should provide an outline of your project and the names of the team members. The outline should have enough detail so that I can determine if it meets the minimum expectations, or if it goes too far to be reasonable by the deadline.

There are no other scheduled checkpoints for your project. You must be done in time to present it to me before the term ends.

Turning in Your Outline / Project

Deploy your outline, in the form of a webpage, to Heroku. Ensure that your project has the proper naming scheme (cs4241-fp-yourGitHubUsername) so we can find it. Folks on the same team should post the same webpage.

Final Presentation

Presentations will occur during the final week of class. We'll also set up a submission site so we can get your repo links.

As for the presentations, we will take over a different room on WPI's campus, with tables. You'll set up and demo to folks who stop by. You'll also demo to me and other graders.

This is a fun event. Since there was no textbook for the course, I'm going to ask or contributions so we can buy tasty food/drink. Look for a Square Cash link from me soon.

FAQs

  • Can I open-source my project? You may open source your project from the beginning. I encourage it. While other course code should be kept hidden, this is a case where others can and should learn and draw inspiration from everyone else.
  • Can I use XYZ framework? You can use any web-based frameworks or tools available.