SNHU CS-230 Operating Platforms
(Script pretending to be an employee as per course instructions.)
While working for "Creative Technology Solutions (CTS)", before I was terminated for excessive code breaking, one client of mine was a company called "The Gaming Room". They had made an Android game app called "Draw It or Lose It", which was mostly based on the 1980's television game show "Win, Lose or Draw". The company wanted to release a web-based version of their game, so that it could be played on multiple platforms, but they didn't know where to start. Along with some test code that we provided the company to show how a simple RESTful API could setup a secure connection between a client platform requesting server side data using authetication and authorization, we also provided the attached project software design so they might make more informed decisions.
Solving their requested limitations (i.e., one unique game running at a time, unique team names, multiple people per team) by throwing singleton patterns and conditional statements at them proved we knew a little about coding at CTS, so they kept us working on the document as the weeks rolled by. Pointing out the design constraints, summarizing their summaries, and describing the domain model all seemed easy enough and fun. Filling out the evaluations were slightly less gratifying, as they were all very similar. But, all languages needed to code a web-based game and some programs, such as Apache HTTP Server, can be installed on any of the three traditional operating platforms (i.e., Mac, Linux, Windows). I wasn't sure what "The Gaming Room" used to code their Android version, but if it was on a traditional OS, they should have the hardware to develop the web-based version already. I may have been a little verbose in my recommendations, but I was trying to be clear on how easy some parts of their business can be.
Working through the beginning of the document, while I still had coding ahead of me, breaking down the requirements and domain model helped pinpoint exact elements that needed to be covered in coding. The evaluations showed that whatever a developer has for equipment can most likely be used to craft a web-based something-or-other. My recommendations suggested that it would be cheaper to rent servers to host their game after they finish writing it. I did not recommend farming out their project completely, as they only wanted help in streamlining their own development. Unless I misunderstood our limited communications. However, with the design document being reviewed weekly by "The Gaming Room" before advancing onto further sections, all their needs were included in the design and test code. If we didn't meet their specs, they would have went elsewhere. But, as everyone knows the story of CTS's rise and fall, when I was there, we always met our client's specs. Always.
I am sure that I am not sure everything I wrote is currently factual, especially concerning terminology. I would revise the entire document in the future given more knowledge so I could correct wrong terminology. I used to approach software design with some post-it notes or index cards and some Sharpies. Now, I think I will create domain models with a free art program (or colored construction paper...) after figuring out what I want for requirements. With my work on "Draw It or Lose It", I could now recommend similar paths for the release of a web-based game.