The first step in developing any application is to interview the user base to generate a list of features they would want in the application. This is an important input for defining the capabilities of the application. To keep the application simple, let's assume that after interviewing the end users and customers, the following requirements were generated:
Users should be able to use the application from any mobile device supporting WML 1.1 and later.
Mobile devices need not support cookies, so the application should not use cookies.
The application should be usable from mobile devices. The application should take into account the small display size of these devices.
WML devices have a small memory footprint, so the browser cannot handle large WML pages. The size of the WML page that is returned to the device from the application must always be less than 1400 bytes.
The user transactions should be secure. That is, some basic authentication mechanism will be built into the application to prevent unauthorized persons from making transactions on a user's behalf.
Users should be able to buy books and music albums from the site.
Users should be able to view a complete list of available books and music albums.
Users should be able to search for books by author and/or title.
Users should be able to search for music albums by artist and/or title.
Users should be able to search the entire database for keywords.
Users should be able to add items to their cart, and decide later whether they would like to buy the selected items.
Users should be able to change the quantities of items, or delete items from their cart.
After the user has checked out, all the items in the user's cart should be shipped to the user.
Users should be able to view the status of items they have ordered.
The middle tier of the application should be scalable. That is, it should be possible to run multiple instances of the middle tier.
In this chapter we will concentrate only on the end user requirements. In real-life, there would be another interface for the site administrators. This interface will allow them to view the transactions done on a particular day, and change the status of the items purchased by users.