Camelot was a semester project for Software Engineering at Missouri University of Science and Technology. The scope of the project was thus:
For this semester project, we are proposing implementation of a centralized chat room application consisting of a client and server. Each side of the development platform (client/server) will be handled by a separate team, adding to the challenge. In the scope of the CS3100 Software Engineering course, the class will be divided into small teams of roughly 4-6 persons which will be assigned to one of the design components (client/server).
Each team will be given the same general tasking, but can implement largely independently of every other team. However, the main aspect every team must adhere to is the general interfacing between client and server. To facilitate development across a wide range of programming languages and environments, client-server communication will take place using the JSON (JavaScript Object Notation) data interchange standard (http://www.json.org/). The exact protocol (determining commands, message formatting, etc.) is left to the initial tasks detailed under the Work Plan. The groups will individually collaborate on suggested protocol components, and the final specification will be a collection from those efforts. Once the final protocol specification is set for the class, teams are still free to extend the protocol within their client/server pairings if so desired (so long as the minimum specification is adhered to).
Each “server” team will be paired with one or more “client” teams. These teams will work together throughout the course of the project to develop cohesive client-server pairings. While the baseline protocols should allow any client platform to connect to any server platform, these explicit client-server pairings will allow for enhanced testing and, optionally, additional development as agreed upon by both teams during the design and development phases.
Our team was delegated to the server. The entirety of the server was written in python3 with a PostgreSQL database. Along with this code, our presentations (written in LaTeX), documentation (also in LaTeX) with help from Doxygen, and meeting notes (in Markdown) are included.
The original team members for this project were:
- Ian Howell (@ian-howell)
- Illya Starikov (@IllyaStarikov)
- Zachary Wileman (@zdw27f)
- Hunter Mathews (@hkmtzc)
- William Thurman (@will-thurman)
Additional work on this project is welcome.