What makes a good product for Cosi166

What makes a great Cosi166b Product

While we don’t have a fixed rubric for what we consider to be an excellent Cosi166 Term project deliverable, here are some of the things we look at:

  1. The “Ruby on Rails Tutorial” gives a detailed example of a kind of a social network. Your product should not be simply another social network. In other words don’t just take the code from the tutorial and do some renaming and reorganization.
  2. This course is about Software Engineering, not business. You don’t need to concern yourself at all with whether your product would sell well or make money.
  3. There are numerous ways to go beyond the Rails basics. We are looking for you to push the envelope in this way. We want your product to be interesting from a technology perspective.
  4. We look for you to follow professional software engineering practices, including: automated testing amd continuous testing and deployment
  5. We will review your actual source code to see that you have used good design practives, object oriented techniques, good modularity, separation of concerns, small classes and methods etc.

Ways to go beyond the basics

These are in alphabetical order. You don’t need all of these, obviously.

  • Accessibility features
  • Ajax for Lively, responsive web site
  • Augmented reality feature
  • Background processing of some kind
  • Brandeis Authentication Integration
  • Caching (Redis or other) to improve scalability
  • Database Schema that is interesting or complicated
  • Docker Containers
  • Google Maps integration
  • GraphQL interface
  • Machine Learning algorithms meaningfully tied to overall product
  • Mobile app
  • Mobile interface
  • Push Processing
  • REST API, especially if you also include a client to this
  • RSS or iCal feed generation or subscription
  • Service oriented architecture
  • Voice + Speech