Flying Kiwi Global Megacorp
Web Software Development Requirements
version 1.0 (Feb 3, 2011)
Overview
The project consists of adding three main parts to be added to an existing HTML website:
1. An open-source shopping cart of the developer’s choosing. Requirements for this shopping cart are listed in
the section below headed The Shopping Cart;
2. A subscription area where customers can access CD-ROM titles which have been put onto the website.
Requirements for this subscription can be found in the section headed The Subscription Area;
3. Electronic download of photographs to a hard drive on the user’s PC, described in the section headed
Electronic Download of Photos.
Item number 3 is the trickiest, but it’s the single most critical part of the project.
Context
All correspondence will be done with Richard Seaman, President of Flying Kiwi Global Megacorp (FKGM).
Richard has 25 years of embedded real-time software development experience, but his web development
experience is limited to HTML, CSS and some PHP.
The basic graphic design of the website is complete. Framework HTML and CSS files will be provided to the
successful candidate, and it is a requirement that the candidate works within this framework. Any changes which
need to be made to the CSS shall be communicated to Richard Seaman.
The completed website will be loaded onto FKGM’s dedicated server, which is a standard LAMP platform
equipped with ASP, SSI, PHP, ColdFusion, Perl, Python, FastCGI and Miva.
We prefer that the website pages be HTML unless PHP or some other script or language is required.
It is intended that software development will be done on the successful candidate’s own server, and transferred to
the FKGM server at the completion of the project, when payment has been made.
We do not want a CMS, blog, social media or other items to be part of the final website.
The Shopping Cart
The shopping cart should be open source, and must not require any ongoing payment by FKGM.
There are many open source shopping carts available, all with particular advantages and disadvantages. We
would be interested to know the reasons for the choice of the particular shopping cart which is to be used.
The shopping cart must be able to accept credit card payments, not just payments through Paypal or other third-
party agents.
The shopping cart should allow for cross-selling: if the customer orders a particular item X, then we would like
to also offer them item Y and Z.
The shopping cart must allow for periodic billing of subscriptions, which will be added in the future.
The shopping car must allow for affiliate payments. We need to track which affiliates have referred customers to
us.
The Subscription Area
We currently have products on CD-ROM which we want to be able to deliver electronically. There are currently
9 different CD-ROM titles, each consisting of about 40 HTML pages.
Customers will pay a one-time fee by credit card, Paypal or other means, and receive access to a subscription area
which allows them to access the titles they have paid for.
It is important for us to be able to add new titles to this subscription area at a later date.
Electronic Download of Photos
The CD-ROM titles in the subscription area contain photographs in different sizes which the customer can
download to a hard drive on their PC. It would also be advantageous if they could download the photos to their
desktop.
It is a requirement that this download works on a PC running any version of Windows, and highly desirable if the
download also works on a Mac.
This photo download is currently implemented on the CD-ROMs using Visual C++. It is desired that the web
implementation be as close as possible to the CD-ROM implementation, but using whichever web language is
appropriate, and not necessarily using pop-up dialogs.
Here’s how the photo download works:
The customer hits a button labelled “load photos” and is taken to a page where they can select the size of photo
they want to load [this is all implemented already using HTML].
The customer selects which photos are to be downloaded. The selection is made using an HTML form in a photo
gallery, with checkboxes individually named PhotoCheckbox001 through to PhotoCheckbox100 [this is all
implemented already]:
The user hits a button labelled “load the photos”, which hands control over to the electronic download software
which you are to write for us. The first thing this software does is to tell the customer to connect a digital photo
frame or memory card to the PC:
After hitting OK, the software displays all of the hard drives connected to the PC, and allows the customer to
choose one of them:
On a Windows PC it isn’t possible to save files into the directory C:\, so instead the option of saving the photos to
C:\FlyingKiwiPhotos\ is given.
Please note that for each drive letter, the name of that drive is also displayed (eg, for the drive letter W:, the name
FLASHCARD is displayed).
We would also like the software to offer the option of saving the photos to the desktop.
After choosing one of the drives and hitting “OK”, the download of the appropriate photos from our webserver to
the hard drive/digital photo frame/memory card begins, with a progress bar showing how far it has gone:
When the download is complete, the “cancel” button changes to an “OK” button:
If during the download the hard drive becomes full or there is some other problem, then the software must display
an appropriate message. Probably the easiest way to test this is by connecting an almost-full memory card to the
PC and then downloading photos to it.