|
My software company submitted a bid to develop a software system to implement the electronic commerce branch of a large company. The company sells office equipment and supplies, with an inventory ranging from copiers and FAX machines, through computers and printers, to general supplies, such as paper, envelopes, pens, etc. Their inventory also includes office furniture. Recently, they decided to start offering their products for sale on the Internet. It is obvious that such an electronic commerce-type system is needed almost immediately.
The e-commerce system should be accessible to a large number of Internet shoppers and allow for browsing and searching of the inventory. Of course, it should allow an on-line customer to select a number of items for purchase and then place an order by providing an address and credit card information. Ideally, the system should also allow keeping track of the placed order.
The administrators of the system should be able to define and maintain the inventory and print stock and sales reports.
Of course, my company with its talented staff of designers and programmers is capable of developing such a system. However, my company decided to develop this system in such a way that it could be deployed for other customers in the future.
After a few initial meetings with the customer, I have determined that the system must be really flexible. I also included specific requirements to make the system as generic as possible. My initial assessment of the requirements outlining the concept of such a system is presented later in this document.
As the development of the product must be rushed, I have created a fast-paced project schedule with the following deadlines, listed in Table 1 below.
|
Task
|
POINTS
|
Deadline
|
|
Requirements document
|
15
|
Sep 14, 2011 |
|
Analysis document
|
20
|
Oct 5, 2011 |
|
System Design document
|
15
|
Oct 20, 2011 |
|
Object Design document
|
30
|
Nov 8, 2011 |
|
Implementation and Testing followed by Demos
|
40
|
Dec 6, 2011 |
Table 1: Project Deadlines
Initial requirements outlining the concept of the system
- The system must allow an inventory controller (administrator) to define and enter into the system categories of stock items. Each category may be described by a number of fixed and user-defined attributes (strings or numbers). For example, the fixed attributes such as the product name, catalog identifier, and manufacturer would be represented as strings, and the quantity in stock and price would be represented as numbers. Some examples of additional, user-defined attributes include the CPU type, RAM size, copier speed, or a desk color, each having a suitable defined type.
- The administrator should be able to define a hierarchy among the existing categories of inventory items. For example, it should be possible to define a Computer Equipment category and then add Desktop Computer, Laptop, Disk Drive, etc. as sub-categories. Similarly, it should be possible to define the Telecommunication Equipment category, comprised of Telephones, FAX Machines, etc.
- Optionally, the administrator should be allowed to define the relationships existing among the categories already present in the system. For example, it should be possible to define a relationship suitableFor between the Printer Cartridge and Printer categories.
- The existing category definitions, including their attributes, parent-child information, and other relationships (if implemented) should be stored as metadata.
- The administrator should be able to enter, delete, and update inventory items, their classifications and/or attribute values.
- The administrator should be able to update quantities (stock) of products for sale.
- The administrator should be able to print reports of the status of the inventory and sales.
- The system must be accessible from a common Web browser (such as Firefox, Google Chrome, and Microsoft Internet Explorer) to on-line customers.
- The on-line customer should be able to browse categories and individual items, and select any of them for purchase, by placing them in a shopping cart.
- If possible, a search capability should be provided. The Internet customer would then be able to search for a specific item using a collection of string attributes.
- The on-line user should be able to put a number of items into a shopping cart and place a credit card order for the selected items. Optionally, the user should be able to keep track of the order (placed, processing, shipped).
- The system should allow multi-user access, protecting against problems due to concurrent access. The system should maintain suitable authorization data and enforce access validation.
- The system must have an easy-to-use user interface (UI) with several screens suitable for each type of the system’s functionality, suitable for all types of users (customers, administrators, managers).
- The system should use a persistent data store (MySQL RDBMS) to store all of the data.
- Whenever possible, the system should use accepted standards, such as HTML, CGI, ODBC, Servlet API, JDBC, SQL, etc.). The project should be coded in either C++ or Java, possibly including code written in other scripting languages, such as JavaScript and PHP.
- Although the system should be secure, relying on accepted security standards, such as SSL and HTTPS, the first prototype is not expected to support encryption. However, user authentication should be implemented (by checking user id and password).
|