GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 GeoLog Requirements Definition Version 1.0 Page 1 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Revision History Date Version Description Author 2007-11-15 0.1 Initial Draft AP, SM, JF, NB 2007-11-18 0.2 Changes agreed with supervisor AP 2007-12-27 0.3 Added some minor changes of use cases according to web design, added missing use-cases, added new requirements (deleting news) AP 2008-01-05 1.0 Final version; Added setting SMTP properties to SA module, scheduled deleting of users. AP Page 2 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Table of Contents 1. Introduction 1.1 1.2 1.3 1.4 Purpose of this document Intended Audience Scope Definitions and acronyms 1.4.1 Definitions 1.4.2 Acronyms and abbreviations 1.5 References 2. 3. 5 5 5 5 5 5 5 Error! Bookmark not defined. Requirements Description 6 2.1 2.2 2.3 2.4 6 6 6 6 Introduction General requirements System requirements Database requirements Use Case Models 3.1 Use case "System administrator" 3.1.1 Use case "set privileged user boundary rank" 3.1.2 Use case "set privileged user minimum articles number" 3.1.3 Use case "set SMTP setttings" 3.1.4 Use case "edit user information" 3.1.5 Use case "delete user" 3.1.6 Use case "asssign content administrator" 3.1.7 Use case "content change for content administrator" 3.1.8 Use case "remove content administrator" 3.1.9 Use case "publish news" 3.1.10 Use case "delete news" 3.2 Use case "Content administrator" 3.2.1 Use case "view user’s articles" 3.2.2 Use case "view user’s comments" 3.2.3 Use case "check user’s status" 3.2.4 Use case "ban/unban user" 3.2.5 Use case "approve/discard new article" 3.2.6 Use case "approve/discard new comment" 3.2.7 Use case "add new location category" 3.2.8 Use case "approve/discard proposed location" 3.2.9 Use case "publish news" 3.2.10 Use case "delete unsuitable content" 3.3 Use case model “User” 3.3.1 Use case "view most popular locations" 3.3.2 Use case "view news" 3.3.3 Use case "search locations by name" 3.3.4 Use case "search locations by category hierarchy" 3.3.5 Use case "search locations on a map" 3.3.6 Use case "view location" 3.3.7 Use case "view location article" 3.3.8 Use case "register" 3.4 Use case “Registered user" 3.4.1 Use case "view most popular locations" 3.4.2 Use case "view news" 3.4.3 Use case "search locations by name" 3.4.4 Use case "search locations by category hierarchy" 3.4.5 Use case "search locations on a map" 7 7 7 7 8 8 8 9 9 9 10 10 11 11 12 12 12 13 13 13 14 14 14 16 16 16 16 17 17 17 18 18 19 19 19 19 19 20 Page 3 GeoLog Requirements Definition 3.4.6 3.4.7 3.4.8 3.4.9 3.4.10 3.4.11 3.4.12 3.4.13 3.4.14 3.4.15 4. 5. Use case "view location" Use case "login" Use case "change user profile" Use case "add new location" Use case "add new article to existing location" Use case "add comment to existing location" Use case "vote for interesting article" Use case "report unsuitable content" Use case "view location article" Use case "forgotten password" Version: 1.1.0 Date: 2007-12-27 20 20 20 20 21 21 22 22 22 22 Requirements Definition 24 4.1 4.2 4.3 24 24 24 26 Requirement Group Definitions Requirement Sources Requirements definitions 4.3.1 Change Log Future Development 26 5.1 5.2 26 27 27 27 28 28 28 General Overview Integration with Web mapping tools 5.2.1 Services based on proximity 5.2.2 Services based on connectivity 5.3 GeoLog as a social network 5.4 GeoLog “on the road” 5.4.1 Integration with GPS devices Page 4 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 1. Introduction 1.1 Purpose of this document This document contains information about a project we make. It contains a detailed description of all the functionalities our GeoLog project should contain. 1.2 Intended Audience Intended Audience is: - customers, who want to know which functionalities they’ll have at their disposal - supervisors, who supervise the work and need to know the planned scope of a project - developers, who must know which customers’ functionalities to implement 1.3 Scope This document will give a detailed description of scenarios which occur when using wanted functionalities of the project. 1.4 Definitions and acronyms 1.4.1 Definitions Keyword location location category content privileged user Hibernate DAO Content administrator System administrator Definitions Specific place to write about Groups of locations with similar content Articles and comments for specific location User with good ranking and much content published. His articles are published immediately before CA approval A powerful, high performance object/relational persistence and query service A design pattern used in software engineering A person, who checks and approves articles/comments, takes care of registered users and adds new location categories. He can also do everything that normal users can for example writing articles, writing comments, etc. A person who is in charge of maintenance of GeoLog system and takes care of assigning content administrators by location categories 1.4.2 Acronyms and abbreviations Acronym or abbreviation JSP CSS SA CA DAO Definitions Java Server pages Cascading style sheets System Administrator Content Administrator Data Access Object Page 5 GeoLog Requirements Definition RU NU Version: 1.1.0 Date: 2007-12-27 Registered user Non-registered user 2. Requirements Description 2.1 Introduction The customer required an application formed as blog focused on locations. This application will not be focused on people like usual blogs, but on locations so people can write about them. Those locations will be visible on Google Earth. 2.2 General requirements In general, the customer wants an application which makes easier finding interesting information about some location for example park, restaurant, town, etc. Users will write articles about location and other users can comment their articles or write their own article about that location. Locations are divided into categories. We must implement category hierarchy so readers can find articles they are interested in much easier. There are four different types of users; System administrator, Content administrators, registered users and guests. Every group has their own user interface. Guests are allowed only to search locations and to read articles, comments and news published by SA or CA. Registered users can search locations, read articles and comments, write their own articles and comments, vote for interesting locations or propose new locations, read news published by CA or SA and report unsuitable content. SA is in charge of system maintenance. CA is in charge of content administrating. Except all permissions that normal registered users have, CA can approve or discard an article/comment/location, add a new location category, ban user and publish news. Users will have rank points and if they pass trusted points limit, they become privileged users and their articles are published immediately and checked later by CA. Other users must grant CA approval to get their article published and visible to other users. Users can also vote for good articles and that points bring rank points to author and also to location that article is about. 2.3 System requirements 1. 2. 3. 4. The system should be designed as a database oriented system, which keeps data about users, location oriented content, location categories etc. The system should be easily later upgraded. The system must have good web interface so users can easily search locations, read about them, comment them or write their own locations review. The location categories must be organized hierarchically to make searching for locations easier. 2.4 Database requirements 1. 2. Whole project must not depend on database type and must be easily portable to other database system. Database must have good performance because of high usage of system so we must make excellent database design. Page 6 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 3. Use Case Models 3.1 Use case "System administrator" 3.1.1 Use case "set privileged user boundary rank" Initiator: SA Goal: Set minimum user rank points needed for automatic article publishing Main scenario: 1. 2. 3. 4. Main SA page Click ‘System properties’ tab Enter minimum points number into ‘privileged user boundary rank’ field Press ‘Submit’ button to save changes Extensions: - if an error occurs, the error page appears 3.1.2 Use case "set privileged user minimum articles number" Initiator: SA Page 7 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Goal: Set minimum article number needed for automatic article publishing Main scenario: 1. 2. 3. 4. Main SA page Click ‘System properties’ tab Enter minimum number of articles into ‘privileged user number of articles’ field Press ‘Submit’ button to save changes Extensions: - if an error occurs, the error page appears 3.1.3 Use case "set SMTP setttings" Initiator: SA Goal: Set SMTP server settig Main scenario: 1. 2. 3. 4. Main SA page Click ‘System properties’ tab Fill required fields for SMTP settings Press ‘Submit’ button to save changes Extensions: - if an error occurs, the error page appears 3.1.4 Use case "edit user information" Initiator: SA Goal: Change user’s information’s Main scenario: 1. 2. 3. 4. 5. 6. 7. 8. Main SA page Click on the ‘Users’ tab A list of all registered users opens Find the desired user Click’ Edit profile’ button in the same row as user is User profile information page appears Change user information Press ‘Submit’ button to save changes Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if the ‘Cancel’ button is pressed, the user information’s does not change - if an error occurs, the error page appears 3.1.5 Use case "delete user" Initiator: SA Goal: Change user’s information’s Main scenario: 1. 2. 3. 4. 5. Main SA page Click on the ‘Users’ tab A list of all registered users opens Find the desired user Click ‘Edit profile’ button in the same row as user is Page 8 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 6. 7. 8. User profile information page appears Click ‘DELETE user’ button Confirm by pressing ‘OK’ button in popup box Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if the ‘Cancel’ button in popup box is pressed, the user will not be deleted - if an error occurs, the error page appears - after deleting user all his articles belong to generic publisher 3.1.6 Use case "asssign content administrator" Initiator: SA Goal: Assign content administrator Main scenario: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Main SA page Click on the ‘Content admins’ tab A list of all CA users opens Click ‘Assign new CA’ A list of all registered users opens Find the desired user Click ‘Edit CA’ button in the same row as user is User profile information page with category tree appears Check desired categories in category tree Press ‘Assign’ button Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if ’Cancel’ button is pressed, the user will not be assigned - if an error occurs, the error page appears 3.1.7 Use case "content change for content administrator" Initiator: SA Goal: Content change for content administrator Main scenario: 1. 2. 3. 4. 5. 6. 7. Main SA page Click on the ‘Content admins’ tab A list of all CA users opens Click ‘Edit CA’ button in the same row as CA is User profile information page with assigned categories in category tree appears Check/uncheck desired categories in category tree Click ‘Assign’ button Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if the ’Cancel’ button is pressed, the user will not be assigned - if an error occurs, the error page appears 3.1.8 Use case "remove content administrator" Initiator: SA Page 9 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Goal: Change content for content administrator Main scenario: 1. 2. 3. 4. 5. 6. Main SA page Click on the ‘Content admins’ tab A list of all CA users opens Click ‘Edit CA’ button in the same row as CA is User profile information page with assigned categories in category tree appears Press ‘Remove CA’ button Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if ’Cancel’ button is pressed, the CA will not be removed - if an error occurs, the error page appears 3.1.9 Use case "publish news" Initiator: SA Goal: Adding news Main scenario: 1. 2. 3. 4. 5. 6. 7. Main SA page Click on the ‘News’ tab A list of all published news appear Click on the ‘Add news’ button News editor page opens Enter the desired news, news title and text Click on the ‘Submit’ button Extensions: - when listing news, 50 news per page are listed sorted by date, there are ‘Previous’ and ‘Next’ buttons to navigate through news - if the user hits ‘Cancel’ button, no news is added - if an error occurs, the error page appears 3.1.10 Use case "delete news" Initiator: SA Goal: Deleting published news Main scenario: 1. 2. 3. 4. 5. 6. Main SA page Click on the ‘News’ tab A list of all published news appear Find the desired news and click on it’s title A page with news content appears Click the ‘DELETE news’ button to delete news Extensions: - when listing news, 50 news per page are listed sorted by date, there are ‘Previous’ and ‘Next’ buttons to navigate through news - if an error occurs, the error page appears Page 10 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 3.2 Use case "Content administrator" 3.2.1 Use case "view user’s articles" Initiator: CA Goal: View all articles published by a user Main scenario: 1. 2. 3. 4. 5. 6. 7. Main CA page Click on the ‘Users’ tab A list of all registered users opens Find the desired user Click the ‘View articles’ button in the same row as the user A list of titles of articles opens Find the desired article title and click it to read article Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users Page 11 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 - if an error occurs, the error page appears 3.2.2 Use case "view user’s comments" Initiator: CA Goal: View all comments published by a user Main scenario: 1. 2. 3. 4. 5. 6. 7. Main CA page Click on the ‘Users’ tab A list of all registered users opens Find the desired user Click the ‘View comments’ button in the same row as the user A list of user’s comments opens Hitting the ‘Context’ button opens the location and all of it’s comments, with the user’s comment highlighted Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if an error occurs, the error page appears 3.2.3 Use case "check user’s status" Initiator: CA Goal: Check user’s status (banned/unbanned) Main scenario: 1. 2. 3. 4. 5. 6. 7. Main CA page Click on the ‘Users’ tab A list of all registered users opens Find the desired user Click the ‘Info’ button in the same row as the user The ‘User profile information’ page opens Check the status Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if an error occurs, the error page appears 3.2.4 Use case "ban/unban user" Initiator: CA Goal: Change registered user’s status by banning/unbanning the user Main scenario: 1. 2. 3. 4. 5. 6. 7. 8. Main CA page Click on the ‘Users’ tab A list of all registered users opens Find the desired user Click the ‘Info’ button in the same row as the user The ‘User profile information’ page opens Ban/unban the user by checking/unchecking the ban checkbox and pressing the ‘Submit’ button The information page refreshes, with the status changed Page 12 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Extensions: - when listing users, 50 users per page are listed sorted alphabetically, there are ‘Previous’ and ‘Next’ buttons to navigate through users - if the ‘Cancel’ button is pressed, the status does not change - if an error occurs, the error page appears 3.2.5 Use case "approve/discard new article" Initiator: CA Goal: Checking and approving/discarding a new article Main scenario: 1. 2. 3. 4. 5. 6. Main CA page Click on the ‘Articles’ tab A page with a list of all new articles appears, the articles being divided into two groups (published/unpublished) Find the desired article and click on it’s title A page with article appears Read the article and approve/discard it by clicking on the ‘Approve’/‘Discard’ button Extensions: - if the ‘Cancel’ button is pressed, the article stays unchecked - if the article is discarded, users ranking is decreased to 1 (out of 5) - if an error occurs, the error page appears 3.2.6 Use case "approve/discard new comment" Initiator: CA Goal: Checking and approving/discarding a new comment Main scenario: 1. 2. 3. 4. 5. 6. Main CA page Click on the ‘Comments’ tab A page with a list of all new comments appears Find the desired comment and click on it’s title A page with all location’s comments appears, with the comment to be checked highlighted Read the comment and approve/discard it by clicking on the ‘Approve’/‘Discard’ button Extensions: - if ‘Cancel’ button is pressed, the comment stays unchecked - if the comment is discarded, users ranking is decreased to 1 (out of 5) - if an error occurs, the error page appears 3.2.7 Use case "add new location category" Initiator: CA Goal: Adding a new location category Main scenario: 1. 2. 3. 4. Main CA page Click on the ‘Locations’ tab Click on the ‘Add new location category’ button A page with category hierarchy tree and two empty textboxes appear Page 13 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 5. 6. 7. 8. Select the new category’s parent node radio button next to the desired position Enter new category’s name Enter new category’s description Press ‘Submit’ button to add new category Extensions: - if the ‘Cancel’ button is pressed, no category is added - if an error occurs, the error page appears 3.2.8 Use case "approve/discard proposed location" Initiator: CA Goal: Checking and approving/discarding a proposed location Main scenario: 1. 2. 3. 4. 5. 6. Main CA page Click on the ‘Locations’ tab A list of proposed locations appears Find the desired location and click on it’s name A path showing location’s position in the hierarchy opens Approve/discard the location by clicking on the ‘Approve’/‘Discard’ button Extensions: - if the ‘Cancel’ button is pressed, the location stays unchecked -if location is discarded it is completely deleted form database, including the first article which user wrote when proposing location - if the location is discarded, users ranking is decreased to 1 (out of 5) - if an error occurs, the error page appears 3.2.9 Use case "publish news" Initiator: CA Goal: Adding news Main scenario: 1. 2. 3. 4. 5. 6. Main CA page Click on the ‘News’ tab Click on the ‘Add news’ button News editor page opens Enter the desired news, news title and text Press the ‘Submit’ button Extensions: - if the ‘Cancel’ button is pressed, no news is added - if an error occurs, the error page appears 3.2.10 Use case "delete unsuitable content" Initiator: CA Goal: Deleting unsuitable content reported by user Main scenario: 1. 2. 3. 4. Unsuitable content report is sent via e-mail to corresponding CAs Read the report Search locations either by name(3.4.3), by category hierarchy (3.4.4) or on a map(3.4.5) to find the location On the page with a list of articles and comments for location find the reported Page 14 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 5. inappropriate content Click ‘Delete button’ presented as image ( article/comment title ) next to inappropriate Extensions: -when the article/comment is discarded, users ranking is decreased to 1 (out of 5) - if an error occurs, the error page appears Page 15 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 3.3 Use case model “User” 3.3.1 Use case "view most popular locations" Initiator: RU, NU Goal: Find locations with best ranking last month Main Scenario: 1. 2. On the main menu select ‘Popular locations’ Page with most popular locations opens Extensions: - if an error occurs, the error page appears 3.3.2 Use case "view news" Initiator: RU, NU Goal: Get news about GeoLog system Main Scenario: 1. 2. 3. On the main menu select ‘News’ A list of news sorted by date with short description is displayed Find the desired news and click ‘Read more…’ to see the whole content of the news Extensions: - when listing news, 10 news per page are listed sorted by date, there are ‘Previous’ and ‘Next’ buttons to navigate through news - if an error occurs, the error page appears 3.3.3 Use case "search locations by name" Initiator: RU, NU Goal: Page 16 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Find location by name Main Scenario: 1. 2. 3. 4. 5. 6. 7. On the main menu select ‘Locations’ A locations web page opens Enter location name into ‘location name’ text box Click ‘GO!’ button A list of found locations opens Find desired location name and click on it A list of articles and comments for location opens Extensions: - if an error occurs, the error page appears 3.3.4 Use case "search locations by category hierarchy" Initiator: RU, NU Goal: Find location by searching location categories Main Scenario: 1. 2. 3. 4. 5. 6. 7. 8. 9. On the main menu select ‘Locations’ A locations web page opens Click ‘Search categories’ A web page with category tree opens Expand category tree to the desired category Click on desired category’s name A list of locations in desired category opens Find the desired location an click on it’s name A list of articles and comments for location opens Extensions: - if an error occurs, the error page appears 3.3.5 Use case "search locations on a map" Initiator: RU, NU Goal: Find location by searching on a map Main Scenario: 1. 2. 3. 4. 5. 6. 7. On the main menu select “Locations” A locations web page opens Click ‘Search on a map’ A map with existing location opens Click on desired place mark Click ‘See more’ A list of articles and comments for location appears Extensions: - if an error occurs, the error page appears 3.3.6 Use case "view location" Initiator: RU, NU Goal: View location content, articles, comments, etc. Main Scenario: 1. Search locations either by name(3.3.3), by category hierarchy (3.3.4) or on a map(3.3.5) Page 17 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 2. Location data is shown i. basic location data (name, categories, rank) ii. short description for articles iii. comments Extensions: - This action can be initiated by User or Registered User, but Registered has some more rights (see „view location“ in Registered user section) 3.3.7 Use case "view location article" Initiator: RU, NU Goal: View article content Main Scenario: 1. 2. 3. View location data (3.3.6) Find the desired article and click ‘Read more’ next to article description A page with article content opens Extensions: - if an error occurs, the error page appears 3.3.8 Use case "register" Initiator: NU Goal: Register to GeoLog Main Scenario: 1. 2. 3. 4. 5. 6. 7. Click ‘REGISTER’ button that appears under login form on right side of every page Registration page opens Enter user profile information (user name, country, e-mail address, password) Enter security information (question and an answer) Click ‘Register’ button A confirmation link is sent via e-mail to specified e-mail address Click on confirmation link to activate account Extensions: - if an error occurs, the error page appears Page 18 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 3.4 Use case “Registered user" 3.4.1 Use case "view most popular locations" Initiator: NU, RU Goal: Find locations with best ranking last month Main Scenario: See 3.3.1 3.4.2 Use case "view news" Initiator: NU, RU Goal: Get news about GeoLog system Main Scenario: See 3.3.2 3.4.3 Use case "search locations by name" Initiator: RU, NU Goal: Find location by name Main Scenario: See 3.3.3 3.4.4 Use case "search locations by category hierarchy" Initiator: NU, RU Goal: Find location by searching location category tree Page 19 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Main Scenario: See 3.3.4 3.4.5 Use case "search locations on a map" Initiator: NU, RU Goal: Find location by searching on a map Main Scenario: See 3.3.5 3.4.6 Use case "view location" Initiator: RU Goal: View location data, articles, comments, etc. Main Scenario: Steps are same as with User (See 3.3.6), but RU has additional options: 1. RU can select "add new article" 2. RU can select "add comment" 3. RU can select "report unsuitable content" 3.4.7 Use case "login" Initiator: RU Goal: Login as a registered user (User -> Registered User) Main Scenario: 1. 2. 3. Enter username and password in login form on right side of every page Click „Login“ If login is successful user menu appears instead of login form Extensions: - if an error occurs, the error page appears 3.4.8 Use case "change user profile" Initiator: RU Goal: Registered user can change his personal data Main Scenario: 1. 2. 3. 4. Click ‘Edit profile’ in user menu on right side of every page User profile page appears Edit information Press ‘Submit’ button to save changes Extensions: - if an error occurs, the error page appears - if ‘Cancel’ button is pressed, profile is not changed 3.4.9 Use case "add new location" Initiator: RU Page 20 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Goal: Add new location to GeoLog Main Scenario: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. On the main menu select ‘Locations’ A locations web page opens Click ‘Add location…’ A web page with map and three textboxes opens Click desired location’s position on a map Chosen latitude and longitude appears in corresponding textboxes Enter location name and click ‘Submit’ Web page with category tree opens Check desired categories for new location and click ‘Submit’ New article editor appears Enter article title, article description and article content Click ‘ Submit’ to add new location and article for that location Extensions: - if the user hits the ‘Cancel’ button, no location is added - if an error occurs, the error page appears 3.4.10 Use case "add new article to existing location" Initiator: RU Goal: Add article about location to GeoLog Main Scenario: 1. 2. 3. 4. 5. Search locations either by name(3.4.3), by category hierarchy (3.4.4) or on a map(3.4.5) On the page with a list of articles and comments for location click ‘Add new article’ A web page with article editor opens Enter article title, article description and article content Click ‘Submit’ to add a new article to location Extensions: - if the user hits the ‘Cancel’ button, no article is added - if an error occurs, the error page appears 3.4.11 Use case "add comment to existing location" Initiator: RU Goal: Add new comment about location to GeoLog Main Scenario: 1. 2. 3. 4. 5. Search locations either by name(3.4.3), by category hierarchy (3.4.4) or on a map(3.4.5) On the page with a list of articles and comments for location click ‘Add comment’ A web page with comment editor opens Enter comment title and comment body Click ‘Submit’ to add a new comment to location Extensions: - if the user hits the ‘Cancel’ button, no comment is added - if an error occurs, the error page appears - Page 21 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 3.4.12 Use case "vote for interesting article" Initiator: RU Goal: Add new vote for interesting article to GeoLog Main Scenario: 1. 2. 3. View location article (3.4.14) Check radio button for desired rank Click on ‘Vote!’ button Extensions: - user can vote for an article only once - if an error occurs, the error page appears 3.4.13 Use case "report unsuitable content" Initiator: RU Goal: Report inappropriate content in GeoLog Main Scenario: 1. 2. 3. 4. 5. Search locations either by name(3.4.3), by category hierarchy (3.4.4) or on a map(3.4.5) On the page with a list of articles and comments for location click ‘Report unsuitable content’ Web page with report editor appears Enter report title and content Click ‘Submit’ to send report Extensions: - e-mail is sent to corresponding CA - if an error occurs, the error page appears 3.4.14 Use case "view location article" Initiator: RU, NU Goal: View article content Main Scenario: See 3.3.7 3.4.15 Use case "forgotten password" Initiator: RU Goal: Get new password in case of forgotten password Main Scenario: 1. 2. 3. 4. 5. 6. Click ‘Password forgotten?’ button that appears under login form on right side of every page A page with text box opens Enter your user name into user name text box and click ‘Send’ button A security question and an empty text box appears Enter answer to your security question into answer text box Click ‘Get Password’ button to get a new password Extensions: - new password is sent to user e-mail Page 22 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 - if an error occurs, the error page appears Page 23 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 4. Requirements Definition 4.1 Requirement Group Definitions Identification SA UA CA PC RNK WEB Requirement Group Rem. System administration Users administration Content administration Project core Ranking Web design 4.2 Requirement Sources Source Description Customers (Mario Žagar, Igor Čavrak) Required as a consequence of system design (contractor’s requirement) Developers suggestion Ctm Sys Ds Rem. 4.3 Requirements definitions Identity Sta tus PC-1 PC-2 PC-3 I I I UA-1 UA-2 UA-3 UA-4 UA-5 UA-6 UA-7 UA-8 UA-9 UA-10 UA-11 UA-12 UA-13 UA-13-1 UA-13-2 UA-14 I I I I I I I I I I I I I I A I Prio rity 1 3 2 2 3 2 3 1 2 1 2 2 1 2 2 2 Description Project Core Handling multiple database systems Hibernate DAO implementation Integration using Spring framework Users administration Multiple users privileges (SA, CA, user, guest) Deleting users (SA) Banning/unbanning users (CA) Editing user information’s (SA) Generic user for articles from deleted users Users status checking (CA) Users ranking Safe registering user method; sending confirmation e-mail Safe password retrieval method; security question/answer User promotion to CA for one or more specific categories (SA) Changing categories assigned to CA Removing CA Ensure privileged users Boundary rank for privileged user Minimum number of articles for privileged user User can edit his profile Source Ctm Sys Ds Ctm Ctm Ctm Sys Ctm Ctm Ctm Ds Ds Ctm Ctm Ctm Ctm Ctm Ctm Sys Page 24 GeoLog Requirements Definition UA-15 A 3 CA-1 CA-2 CA-3 CA-3-1 CA-3-1-1 CA-3-1-2 CA-3-1-3 CA-3-2 CA-4 CA-5 CA-6 CA-7 CA-8 CA-9 CA-10 CA-11 CA-12 CA-12-1 CA-12-2 CA-12-3 CA-13 CA-14 CA-15 CA-16 CA-17 CA-18 CA-19 CA-20 I I I I I I I I I I I I I I I I I I I I I I I I I A A A 2 1 1 1 2 2 1 2 1 2 2 2 2 3 3 2 1 1 1 2 2 2 2 1 2 3 3 3 RNK-1 RNK-2 RNK-3 RNK-4 RNK-5 RNK-6 RNK-7 I I I I I I A 2 2 2 3 2 2 1 SA-1 SA-1-1 SA-1-2 SA-2 I I A A 2 2 2 2 WEB-1 WEB-2 WEB-3 WEB-4 I A I A 3 3 2 2 Version: 1.1.0 Date: 2007-12-27 Scheduled deleting of non-activated users Content administration Adding new categories (CA) Categories have hierarchy Adding new locations Adding new articles Adding links in articles Adding pictures to articles Adding text to articles Adding comments More articles for location More comments for location Article refusing/approving Comments refusing/approving Location refusing/approving Voting for locations Location popularity ranking Locations visible in “Google earth” Location search by: Location name Category tree On “Google maps” News publishing (SA, CA) CA can see all articles published by some user CA can see all comments published by some user Hierarchy is changeable Report inappropriate content Deleting unsuitable content (CA) Deleting published news (SA) Uploading images to local file system Ranking Article from privileged users publishes immediately Article refusing decreases user’s rank Comments refusing decreases user’s rank Locations ranking take care about time value Better ranked locations are visible from higher altitudes Location refusing decreases user’s rank Voting restrictions; user can vote for an article only once System administration Changing system properties (SA) Changing boundary rank for privileged user Changing min. number of articles for privileged user Setting SMTP properties Web Using CSS for easier web design changes Printing style sheet Presenting locations using “Google maps” Scalability when listing users, comments, news (pagination) Ds Ctm Ctm Ctm Sys Ctm Ctm Ctm Ctm Ctm Sys Sys Sys Sys Sys Ctm Ctm Ctm Ctm Ctm Ctm Ctm Ctm Ctm Ctm Sys Ds DS Ds Ds Ds Ctm Ctm Ds Sys Ctm Ctm Ctm Sys Ds DS Ctm Ctm Requirement status: Page 25 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 I = initial (this requirement has been identified at the beginning of the project), D = dropped (this requirement has been deleted from the requirement definitions), H = on hold (decision to be implemented or dropped will be made later), A = additional (this requirement was introduced during the project course). 4.3.1 Change Log Identity Acti on Date UA-13-2 A 2007-11-18 SA-1-2 A 2007-11-18 WEB-4 A 2007-11-18 CA-18 A 2007-12-27 CA-19 A 2007-12-27 CA-20 A 2007-12-27 RNK-7 A 2007-12-27 WEB-2 A 2007-12-27 SA-2 A 2008-01-05 UA-15 A 2008-01-05 Comments We agreed with the customer that rank is not sufficient criteria for user to be privileged, and number of published articles must also be taken into consideration when promoting user into privileged user. This is the consequence (System requirement) after adding requirement UA-13-2 When listing users/comments/news not all of them are listed at once but they are divided to pages. Since reports about unsuitable content are sent to CAs, they must have ability to delete reported inappropriate content (content that is already published). We added ability to delete published news (but this ability has only SA) Since uploading images to Panoramio has many restrictions, we decided to implement uploading images to local file system. This is a system requirement, user can’t vote for an article more than once. User votes are stored in a table in database (userID, articleID). This is just an user friendly functionality, printing style sheet adjusts the web-page design when it is printed SA can change SMTP settings without restarting application. To avoid misstated registrations and a large number of nonactivated users we are deleting users after the time for activating account expires. Requirement status: D = dropped (this requirement has been deleted from the requirement definitions), H = on hold (decision to be implemented or dropped will be made later), A = added (this requirement was introduced during the project course). R = resurrected (dropped or on hold requirement was reactivated) 5. Future Development 5.1 General Overview GeoLog is in its essence very similar to Geoweb principles[http://en.wikipedia.org/wiki/Geoweb] (merging of geographical (location-based) information with the abstract information that currently dominates the Internet), but also implements ways of adding new content data about geospatial locations. However, there are some common guidelines in which we will focus our future development. GeoLog is not tool for Web mapping, but it is advisable to use Web mapping services for representing Page 26 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 geospatial locations of content data. Therefore it has to have firmly defined interface for connectivity plugins. Implementing of Web GIS services, which are dealing with both Web mapping and location (geospatial content data), looks like the most demanding, but also most desirable service. 5.2 Integration with Web mapping tools Virtual globes are accessible and easy to handle tools for representation of the Earth or another world. They are very common, affordable (free! just the price of downloading data) and widely used among peoples all around the world which makes them ideal tool for distribution of location content data. Virtual Globes: Google Earth NASA World Wind Microsoft 3D Virtual Earth Mapping web sites are ideal for representing spatial data on different web sites. Mapping web sites: Google Maps Yahoo Maps Windows Live Local Therefore GeoLog must have possibilities to integrate with these tools. Some of them are already taken into account. Data organization and representation Use of GIS has trend of everyday increasing popularity, thereafter data organization and representation becomes bigger problem. A Geo informational retrieval (GIR) system comes as a solution to address issues regarded to high traffic and demanding data retrieving. GeoLog database infrastructure is just first generation and therefore not intended for high traffic use and GIR services. So we should take in consideration possibilities of integrating it with some future database services with additional GIS modules. For example 11g Oracle Spatial & Oracle locator, etc. Enabling these modules would give a good infrastructure for variety of other GIS services. Location GIS services Network modeling, management, and analysis are common tasks for Geographic Information Systems (GIS). Network analysis includes routing (path computation) in transportation networks, tracing (accessibility) in utility networks, and resource allocation in decision-making and customer relationship management (CRM) applications. Therefore they are very important to take in consideration when developing Geo oriented systems. We can divide these services on two similar but distinct areas. 5.2.1 Services based on proximity Examples: Nearest Neighbors: What are the N nearest neighbors of a given location? Within Cost: Find all points of interest within a certain distance from a designated location 5.2.2 Services based on connectivity Examples: Shortest Path: The shortest path from node A to node B Shortest Path or Fastest Path Page 27 GeoLog Requirements Definition Version: 1.1.0 Date: 2007-12-27 Accessibility Analysis: Is node A accessible from node B? Minimum-Cost Spanning Tree: What is the minimum-cost tree that connects all nodes? Within Cost Analysis: What nodes are within a given cost from (to) a given node? K Shortest Paths: What are the K shortest paths from node A to node B? Traveling Salesman Problem: What is the minimum-cost tour that visits a set of cities? 5.3 GeoLog as a social network GeoLog has variety of uses. Basically it’s a yellow page informational community network. Social networks are much more popular and in the future GeoLog should offer some social network services or integrate to already existent like Facebook, MySpace, etc... 5.4 GeoLog “on the road” There are already services which connects people “on the road”, that is work with subject’s location and locations of others members of community. Next step is connecting these dynamic location services with virtual social networks, that is -give them their physical representation. Precondition is, of course, cognition of subject (current) location, subject is eligible to carry GPS device connected to mobile device (CDC or CLDC). This is not so strange in today technical community in which almost every citizen of the modern world has some kind of mobile device. Device with integrated GPS are not so expensive nowadays, there are solutions available even from 79$. Implementing these services would give one new dimension in everyday’s functionality of peoples involved. For example let’s take next situation: Today is weekend and I have/wants lots of things to do. I have to go to the shop (which works till 3 o’clock), I have to check grandma after lunch, wants to go with Peter to cinema at movie which is shown at 17, 19 or 21 o’clock. Then I would like to go to some discount shops in center. In center I have to go with subways (they have fixed, known, departure times) and move from shop to shop by bus, walk or again subway. Even with these things to take care about I would like to meet my friends Susan and Ann which also are also “on the run” and take 15 min coffee break with each. On my mobile GPS enabled device I can set these points and select friends to meet. System has to take all these factors into consideration, follow me if I change the route, solve dynamic traveling salesman problem and give me advice about my movement so I can make it all and meet some of my friends. Is it a science fiction? Probably, but not for so long. 5.4.1 Integration with GPS devices Car GPS devices are affordable and common in most of the vehicles in perspective western countries. They are rapidly increasing trend. Nobody wants to get lost and beside that, they are fancy and becoming must have toys. So we also must take in consideration connecting with these devices. Car GPS devices with integrated internet connectivity should be able to connect to our service and get data about surrounding locations. Car GPS devices without that possibility should be able to download that data through some computer application so therefore GeoLog should be familiar to these applications (GPSBabel, etc). First step is to take account of integration with format which is standardized in these tools – GPX. It’s a variant of Geographic Markup Language (GML), which is basically standardized format of XML with few types of representing geospatial location. Page 28