Skip to content

Architecture Final Wrap Up

corkhead edited this page Dec 7, 2012 · 3 revisions

###What is your architecture? Is there an up to date document to reflect this? Our up-to-date architecture document is located at: Architecture.
The architecture consists of front end UI components, back end services, and data models. To support the features we had scheduled through Release 3, the main UI components include: the game and its subcomponents (definitions, tiles, etc.), the start screen for defining dictionary settings, login and registration pages, forms for building custom word lists, and the leaderboard. The back end services that support these components are: word fetching services (random, custom, static), login and registration handlers, custom words creation/update/deletion, and user data retrieval. The services provide the means to read/create/update the following data: user accounts, words for the game's built-in dictionary, custom words (associated with users), and game histories (associated with users).

###What is your run time platform? How did you choose it? We are using Heroku as our hosting service for our Django web application and PostgreSQL database. We chose Heroku because of its relatively simple and fast deployment process, compared to other options such as WebFaction and AppEngine. Its basic free services are sufficient for our initial development.

###Do you have an architecture review process? What is it? Do you use it? We do not have a formal review process. We established the bulk of the architecture as a team in our initial documentation and held several extra meetings to ensure that it was complete and well-designed. We followed through without making major changes. As such, we have not had the need for a review process.

###What is your design center for scale? Any idea how you will grow beyond that? In the documentation of the architecture and design for our app, we aimed to support the possibility of having a large number of users (over one million). However, scaling to this size has not been a focus throughout our development process since it is difficult to assess performance without the users and resources to do so. While the free services currently provided by Heroku are limited, we have the option to scale up and/or out in terms of databases and performance management.