Project 7.3 Specification: Armada Component

April 11, 2011

Here is a general overview of the Space Armada Component application. In a nutshell, you simply must provide CRUD functionality for your domain (for example, Puppies). Note that your domain-specific controller (eg, PuppiesController) must exhibit RESTful endpoints (your controller actions must respond to xhr requests) also use AJAX and DHTML to enhance the user interface.

Space Armada Component Overview

"Space Armada Component" is a multi-user Web application that allows its users to design and build armada components such as puppies, destoyers, etc.

Scenarios

Kara Thrace (aka Starbuck) has been a user of the Space Armada application for some time. She decides to add a new armada component to the ecosystem, specifically a new puppy, and visits the Space Armada Puppy componenet URL. She immediately sees a list of all puppies in the system, and she clicks a login link and signs in.

She then sees a list of all puppies in the system, and clicks on a button labeled "Create Puppy!" She adds a photo, description, name, age and price and clicks a button labeled "Save!" after which she is shown a screen that displays the puppy she just created.

"Hmmm, I wonder what other cutelicious puppies have been created lately," she wonders, and clicks a menubar link labeled "All Puppies."

"Oooooh cuuuuute!" she thinks, seeing an irresistible puppy in the list. She clicks a "more" link next to the puppy's truncated description and the entire description fades into view. "I'm going to add that puppy to my favorites." She clicks a grey star and it suddenly turns gold, with a little message next to it that states "Added to favorites" before slowing fading away.

"All right puppies! We're off to go battle the Arachnids in Betelgeuse now!" she says, and visits the main Space Armada application where she can add the puppies to her armadas. (to be continued)

Non-Goals

This does not attempt to be a game, per se, but one component of the Space Armada application ecosystem.

General Flow Chart

Here is a general overview of the user experience through the application.

Screen Specification

Space Armada Component provides only a few screens to the user, and most of them you've seen before, or are already implemented as of milestone 7.2 such as a login screen, registration screen, and so on. Here we specify the features related to managing components, which in this example is puppies.

Log In, Register, Forgot Password, Reset Password

The Space Armada Component application provides interfaces for logging in, registering, and retrieving a forgotten password. Since these screens are already built for the developer (via the skeletal application) we won'tcover them here.

Administration Screens

Every Web application should have some kind of administrative area that provides access to full CRUD over all data in the system. Screens for User and Role objects are provided, so we won't cover them here. Admin screens for managing puppy objects are identical to those provided for members, described below. The administrative features should be accessible via the menubar if the logged in user is an admin.

Public Home Screen

This is the screen that everyone sees when they first visit your application. It lists the puppies in the system and looks like this:

Anyone can click on a puppy to view it in more detail via the View Component screen. He or she may also click a 'login' or 'register' link.

View Component

This screen displays the details of a particular armada and looks like this:

Member Home

This screen is very similar to the Public Home Screen. It lists, via a paginated interface, all of the puppies in the system. Most importantly, this screen should display a large link or button to "create a new puppy" that takes the user to the Create/Edit Puppy screen.

Member View Component

This screen is identical to the public View Armada screen, except if the user is viewing an armada he or she created, a link or button to "edit this puppy" and "delete this puppy" should be displayed. In addition, a star widget should always be displayed that is either grey or gold. When the "edit puppy" button is clicked, the Edit Armada screen should be displayed. When "delete puppy" link is displayed, the user should be prompted to confirm deletion. If the star is grey and is clicked, then the words "added to favorites" should appear next to the star and fade away and the star should then appear to be gold. If the star is gold and is clicked, then the words "removed from favorites" should appear and fade away, and the star should turn grey. As a side effect, the relevant puppy should be added or removed from the users' "favorite puppies" list.

Edit/Create Component

This screen provides the user the ability to edit or create a puppy. It should provide typical user interface elements to manage the puppy attributes. A name, price attribute, photo and description are required to have values. All other attributes are optional (and completely up to you, according to your component).

Conclusion

Keep your application's featureset simple. This specification only outlines the functionality you must meet. Be sure to also note the technical specifications in the main Project 7.3 document.