Skip to content

cs4241-20a/final-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

cs4241-FinalProject

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

General description

Your project should consist of a complete Web application, exhibiting facets of the three main sections of the course material:

  • Static Web page content and design. You should have a project that is accessible, easily navigable, and features significant content.
  • Dynamic behavior implemented with JavaScript (TypeScript is also allowed if your group wants to explore it).
  • Server-side programming using Node.js. Typically this will take the form of some sort of persistent data, authentication, and possibly server-side computation. Ideally it will also include support for realtime commmunication as discussed below.
  • Groups are highly encouraged to consider including some type of realtime communication technology in their projects (chat, networked multiplayer games, collaborative coding/editing, video/audio via WebRTC etc.) We'll be discussing many of these technologies in class next week.
  • A video (less than five minutes) where each group member explains some aspect of the project. An easy way to produce this video is for you all the groups members to join a Zoom call that is recorded; each member can share their screen when they discuss the project or one member can "drive" the interface while other members narrate (this second option will probably work better.) The video should be posted on YouTube or some other accessible video hosting service.

Project ideation

Excellent projects serve someone/some group; for this assignment you need to define your users and stakeholders. I encourage you to identify projects that will have impact, either artistically, politically, or in terms of productivity. Consider creating something useful for a cause or hobby you care about.

Logistics

Team size

Students are will work in teams of 3-5 students for the project; teams of two can be approved with the permission of the instructor. Working in teams will allow you to build a good project in a limited amount of time.

Deliverables

Proposal: Provide an outline of your project direction and the names of the team members. The outline should have enough detail so that staff can determine if it meets the minimum expectations, or if it goes too far to be reasonable by the deadline. This file must be named proposal.md so we can find it. Submit a PR to turn it in by Monday, 11:59 PM

There are no other scheduled checkpoints for your project.

Turning in Your Outline / Project

NOTE: code is due before the project presentation day due to the end of term / grading schedule constraints Submit a second PR on the final project repo to turn in your app and code.

Deploy your app, in the form of a webpage, to Glitch/Heroku/Digital Ocean or some other service. Folks on the same team do not need to post the same webpage, but must instead clearly state who is on the team in their proposal.

The README for your second pull request doesn’t need to be a formal report, but it should contain:

  1. A brief description of what you created, and a link to the project itself.
  2. Any additional instructions that might be needed to fully use your project (login information etc.)
  3. An outline of the technologies you used and how you used them.
  4. What challenges you faced in completing the project.
  5. What each group member was responsible for designing / developing.
  6. A link to your project video.

Think of 1,3, and 4 in particular in a similar vein to the design / tech achievements for A1—A4… make a case for why what you did was challenging and why your implementation deserves a grade of 100%.

FAQs

  • Can I use XYZ framework? You can use any web-based frameworks or tools available, but for your server programming you need to use node.js. Your client-side language should be either JavaScript or TypeScript.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published