Functional Specification

Rahul Mittal
Last Updated: March 3, 2003

Disclaimer

This is a working draft specification for the upgrade to Rahul Mittal's website, http://www.rasteroid.com/ (i.e. this website). This specification is incomplete.

This specification does not discuss algorithms or other implementation details. It simply outlines the user experience when they interact with http://www.rasteroid.com/.

Scenarios

This website is meant primarily for me to disseminate my work and my ideas to the internet audience. It is meant both as a tool for me to log my ideas as well as a means for users to retrieve documents and knowledge that I share.

Scenario 1: Browsing

- Incomplete -

Non-Goals

This version will not implement the following features:

  1. Discussion forums of any kind
  2. Guest books
  3. Ability to change website passwords
  4. Multiple browser compatibility. It is assumed that IE 6.0 is being used to view the website
  5. Search capability
  6. Web-based backup system
  7. SQL Server database connectivity
  8. Cookies

Requirements

  1. General/All pages
    • Must be easy to maintain. This means that a very *minimal* amount of coding should be required once the basic site is operational
    • New pages, files and resources must be manageable without having to resort to source code
    • Must be reasonably efficient and fast
    • Must conform to the XHTML1.0 standard
    • Must have clear separation of code and data
  2. Welcome page
    • Displays the most recent news
    • Link to a page with older news
  3. Contact page
    • Email form for people to send me email
    • Email encryption
    • Save a copy of the mail sent to me on the server
    • Separate link to download my public key
    • Alternative contact information (MSN, Yahoo!, etc. but NOT my real address or phone number)
  4. News management page
    • Add news (date, time, author, title, message)
    • Automatic archival of older news
  5. Content management page
    • Add new pages
    • Edit/Rename/Modify existing pages
    • Delete existing pages
    • Query database page
    • Page to handle uploads and downloads of data files, images, etc
    • Directory of all pages (nodes) on the website
  6. Menu system
    • Present on the left side of every page
    • Fully hierarchical and tree based, like at MSDN
    • Data to be read from an XML file. Later, make it readable from the Access database
  7. Traffic logging system
    • Store IP information for each session, and all the pages browsed during that session
    • Page to reconstruct browsing history for each user on a session by session basis
  8. My IP logging system
    • Save the last known IP address that I (only the author) used to access the website
  9. Password management page
    • Password controls the Content and News management pages
    • Passwords need to be transmitted securely, rather than in plaintext