WebJavenue logo
webjavenue.com — Java web development made easier without JSP
Demo Tutorial Resources About

RSS Icon
Use the RSS feed to stay current on new additions.

Your First Website In Java: Easier Than You Think

1.2. Spelling Out Requirements

This tutorial is a work in progress: new chapters are published as they become available. The author welcomes readers' input and will greatly appreciate any comments, suggestions or criticism sent to: bruno at webjavenue dot com. In the meantime, please feel free to check out the demo application this tutorial is based upon.

Published: Apr 18, 2006

Alrighty now, enough talking! The time has come to get something down on paper. Let's recollect what we've learned so far and define, in general terms for now, the subject, the purpose, and some of the main features of the website we are going to build.

Compared to business web applications, content-oriented websites exhibit very moderate levels of sophistication: they are usually less transaction-intensive (although they may have to sustain high volumes of traffic), have few, if any, forms to process, and employ mostly primitive workflow scenarios. These characteristics make it fairly easy to describe an application's functionality in plain words without excessive amounts of specs, requirements and diagrams.

We will start by picking a subject, and then proceed to outline the services our website will be providing to different categories of users.

There is one important thing to keep in mind: the demo website we are building in this tutorial is an example, not a real-world application. Among other things, this means that our primary objective is to find out how some of the most common site-building tasks are accomplished, not to get bogged down in details trying to implement every imaginable feature. Speaking figuratively, we want to keep sight of the forest for the trees as we go along.

Subject

Before we can move any further, we need to pick a subject. So what is that thing your website will be about? Motorcycle racing? Nanotechnology? Origami? Bird watching? Whatever you choose, I hope it's something you know inside and out. You better do, anyway.

Puffy

As for the demo, its subject could be pretty much anything, since we are not going to fill the site with actual content. Thinking of a good topic I went over some of the common things everyone would be familiar with, and finally decided on pets. After all, who does not have a pet? Even if you don't, you still understand the concept, don't you? Trying to narrow down the subject, I looked around, and my eyes rested on Puffy, the little rabbit we got two years ago for our kids. Look at her picture, is she ever cute! (well, my photographic skills are far from exceptional smile).

Anyhow, if there are no objections, our fictional website will be about rabbits and everything related to rabbit care. And I hope you don't mind if I name the website itself after this sweet little girl: Puffies (yes, some vulgar connotations may pop up at the mention of this word, but, on the other hand, I personally know more than one pet that goes by that name).

Purpose

As was discussed in the previous sections, we are not putting up our website just for the fun of it: we want results, we want to be a number one resource on the net. In pursuing this goal we are hoping to pull together a team of enthusiasts who share our passion for… um, rabbits. Our plan is to attract people who know a thing or two about the subject, by encouraging them to freely manifest their love and competence in front of the entire world. We hope that this collaborative effort based on the principles of trust, mutual respect and common interests will result in a long lasting relationship and yield the most comprehensive knowledge base for every rabbit on the planet to benefit from.

Services

In accordance with our intent to be an informational resource, the main service our website will be providing to the general public is to deliver content, which will come in the form of articles.

Articles will be written up by contributing members. To become a member, one will need to fill out and submit a registration form. Once registered, the member will be granted the right to post his/her own articles, subject to moderation.

Overseeing all ongoing activities will be site administrators. Initially, there will be one administrator within the system. As the community grows, an administrative status may be offered to other trusted individuals. Administrators will be able to censor and delete articles at their discretion. They will also have the ability to take actions against violating members: suspend and permanently ban their accounts.

User roles

Summing up the (rather loose) description of the above services in terms of rights and privileges, we can identify three distinct groups of site users:

  • visitors;
  • authors;
  • administrators.

This is of course a greatly simplified user model that leaves open a number of interesting questions, for example: should administrators be able to edit each other's articles? Or: once an administrator, who will have the power to revoke that status? A detailed consideration of these issues would go far beyond the scope of this tutorial. And you know what? You should not be worried about these matters for now. Your website will have to come a long way before access control granularity becomes a real issue. As the saying goes, you will cross that bridge when you come to it.

Please remember: your website's functionality is not set in stone. There will be a great many fascinating features and enhancements you will put in place over time as your vision changes to reflect new ideas, trends and opportunities. The demo website we are building here will be functional enough to get you started, but after we are finished it will all be up to your creativity and imagination. Which I am sure you have in abundance, and my only job as I see it is to set you on the right track on your way to fulfilling your potential.

In the next chapter we will do the groundwork setting the basis for an implementation of what we have just outlined in this section.


Copyright © 2006 WebJavenue

bruno at webjavenue dot com