Requirements

MVP

Our MVP is essentially feature-parity with the original Rocket. In particular, we should have:

  • An extensible Unix-style command system
  • user command (member info)
  • team command (team management)
  • help command
  • Permissions system

All of these should be connected to a database, likely a cloud database like DynamoDb or Firebase.

We have decided not to pursue a full plugin-oriented architecture, as this would severely complicate our work and most likely would not be used.

Stretch Goals

  • Currently Rocket does most of the work of managing the Launch Pad Github organization. Replicating and extending this behaviour would be our first priority after completing the MVP.
  • More ways to access Rocket-the-service would be nice. In particular, a command-line interface should be relatively easy to build. A web-based dashboard would be useful, but likely too far outside scope.
  • A reminders command has been specifically requested by the co-presidents.
  • The co-presidents also have other feature requests that will be added as Github issues.

Non-functional & Other Requirements

  • Rocket 2.0 will be containerized via Docker.
  • All code will follow the PEP8 style guide; this will be automated with pycodestyle.
  • There should be automated tests for most behaviour, run with a CI system, and code coverage should be collected and uploaded to Codecov.io.
  • The command system should be reasonably extensible.