Project 6: Ruby on Rails Project

Ruby on Rails Tutorial

Complete chapters 2, 3, 5, and 6 of the textbook. (If time permits, try the main bits of chapters 7 and 8 too.) See the syllabus for notes on textbook access.

Everyone in the group should complete this part of the project. Collaboration is permitted and encouraged! You do not need to submit anything for this part of the project, but completing it as soon as possible is highly recommended as it will help in completing the second part (i.e. the final project, below).

Final Project: Audience Evaluation of Presentations

Background

In classes with presentations, such as CSE 3901, evaluations of these presentations by audience members (ie other students in the class) can be a useful component of the grading rubric. The feedback from these evaluations is useful to the instructor for assigning a score to an individual student, as well as to the students for receiving constructive criticism from their peers.

A web application would streamline the collection, collation, and analysis of these audience evaluations.

Required Features

  1. The instructor/TA should be able to create presentation events for which evaluations can then be submitted.

  2. An audience member should be able to submit scores and comments for a presentation. The application should support multiple presentations over the semester (eg, different presenters or multiple presentations by the same presenter).

  3. An administrative interface should give a useful view of the scores and comments submitted for a presentation. This view should support the instructor's need to assign grades based on these evaluations.

  4. A presenter should have access to the feedback provided by their audience.

Extensions

The following list is not exhaustive. The goal is to create as useful an application as possible, so the following are some challenges that could be addressed to that end. You are encouraged to think of other improvements that would be useful.

  1. Authentication/login. Evaluations should be connected to an authenticated user, preventing forging of evaluations.

  2. Class roster. The instructor or TA should be control membership by, for example, populating the class with names and email addresses from a roster.

  3. Prevent self-evaluation. Presenters (for either individual or group presentations) should not be allowed to submit an evaluation of their own work.

  4. Admin dashboard to monitor submission of evaluations and simplify sending reminders or managing evaluations that are never submitted.

  5. Changing enrollment. Students might add or drop the course and this should be handled cleanly by the tool.

Technology Task

As part of your application, your team will choose a technology in one of the following spaces:

  1. Ruby
  2. HTML/CSS
  3. Javascript

You will incorporate this technology into your project. For example, you may extend your application to utilize an HTML/CSS framework such as Bootstrap, an interesting Ruby gem or backend integration, or a Javascript SPA or state management framework.

As a group, choose the technology extension you would like to use and post it to the General Discord channel. Each technology area (Ruby, HTML/CSS, Javascript) should have two teams assigned, so if two other teams have already posted that they are doing an extension in that area, you should choose a different one.

If you are unsure if your chosen technology is sufficiently advanced, feel free to ask the instructor directly before choosing it.

Submission

  1. Push a tag called "v1.0" to your github repo. Over the next several lectures, each group will have about 18 minutes to present their project to the class. In addition to giving a client-view demo (i.e., from the end-user perspective), this presentation should also describe the technical details of the design from an implementer's perspective (database schemas, architecture, etc). Additionally, your presentation should incorporate a section on your additional technology (See Technology Task) that provides a brief overview of the chosen technology, an educational review on how to use it, and any challenges you faced in incorporating it. Your git repository should include documentation, the slides to be used for the class presentation, as well as the application itself.