Michael Cafferata
August 29, 2003
Software Requirement for a blog
Part I: Application Overview
Objective
To provide an online presence that will allow for a simple publication of information that users desire to write. This system will have multiple users and multiple blogs. Other web-users will have the ability to view and comment on the various publications. The goal of this system is to have as close to 24x7 availability to the end user. The system will have intuitive usability to maximize the productivity of the user.
User Roles and Responsibilities
There will be three types of users. The most powerful user will be the blog administrator. This user has the ability to configure and modify any part of the system (except the underlying code). The next level of user is the blog author; this user can modify display properties of their own blog and can create, edit, delete publications they have created. The last user is an unauthenticated user, browsing the site. This user has the ability to view entries published on the site and can post comments to blog entries.
Interactions with Other Systems
Because the system resides on the internet, the system will have to interact through the internet, web browser, and other related technology; thus, the system will have to user industry standards for input and output (i.e.: http and html).
The system will use a database backend to store data. It will need to be implemented with the ability to create, delete, and view data stored in the database.
Part II: Functional Requirements
Statement of Functionality
List of requirements by feature
· Authentication
To control access to users permitted to publish and access only their data, the system must have a mechanism that will permit authorized users to access their blogs. At the same time, there must be a mechanism to terminate the access the user was granted when s/he authenticated. The information containing the user.s logon id and password will be stored in an appropriate table in the database.
· Administration
o System Administration (i.e.: .root.)
The idea of system administration is for the most powerful user that has control over the entire system.
§ Creation / deletion of blog / user
This is a mechanism to create and remove both individual blogs and individual users. The data for this will be stored in the database. Only users with sufficient access (i.e.: .root.) will have this power
§ Configuration of blogs
Once a blog is created, there are specific file-system settings that must be configured by the system administrator. These settings are locations for other parts of the system to look for files for the specific blog and the location of the system executables required to run the blog. These settings must be kept in a local file in a location that the system executables know.
§ Data backup / retention
This feature allows for the administrator to backup the system. This includes all data from the database, local configuration files, and user data files.
o Individual blog administration / customization
These are the special features for blog authors and more powerful users.
§ Customization of blog layout
An authenticated user will have the ability to modify templates that are used to create the external pages. This level of customization will allow the user to select how many blog entries will be placed on the index page, where on the page the data resides, and what data the blog author requests on the page.
§ Data backup
Like the system administrator, the blog author will have the ability to backup data from the site. This feature will only backup ( download ) the user.s data from the database and the user.s data files.
· Creating an entry
All authenticated users will have the ability to create new entry for the user.s blog. In the case of the system administrator, this user will be able to create an entry on any user.s blog. In the process to create an entry, the user will be able to specify a title, insert text, and attach files they uploaded. The user will have an option to publish the entry or preview it. All data, except for the file attachment, will be stored in the database. This process will trigger a generation of the external pages affected.
· Editing an entry
Once an entry has been posted to the web, the user has the ability to change any information that was contained in the original post. Then the user can preview or save the entry. The process will trigger a generation of the external pages affected. The system administrator user will have the ability to modify any entry by users. An audit entry will be created during the update process.
· Deleting an entry
Users will be able to remove entries from their blog. The user will have to confirm the request. The process will trigger a generation of the external pages affected. The system administrator user will have the ability to delete any entry made by a user. An audit entry will be created during the update process. This function removes the data from the database. It does not delete any attached files in the user.s file space.
· Preview entries
This option allows blog authors to view their entry without publishing it to the world. It will give the user the option to edit or publish the entry.
· Upload a file
Blog authors will have the ability to attach files to entries. This function will enable the user to choose which file on their local device they would like to include in the entry, upload the file to the server and produce the necessary html to include the file in the entry. The file will be stored in the user.s file space.
· Viewing the site
Authenticated and non-authenticated users will be able to view the site. The site will be broken out to different archival periods based on the customization of the blog author. The blog.s main page will have links to these pages.
· Commenting on an entry
Authenticated and non-authenticated users will be able to make comments on specific entries in the blog. This data will be stored in the database and both the system administrator and the blog author will have the ability to remove the comment from the site.
· Generation of external pages based on archival period / updates . based on templates
This is the behind the scenes part of the system. After a user makes changes and saves them, the system will kick off jobs to refresh the appropriate html files.
· Activity log
Display of users and the changes they made to the system. System administrator has access to log.