# 1 Introduction
[NULL]

## 1.1 Purpose
The purpose of this document is to present an overall description and listing of the functionality of a Publications Management System (PMS). This document is intended for the customer(s) and suppliers of the system including designers, testers and the implementation unit.

## 1.2 Scope
The PMS is software accessible via both a command line and a web browser (following W3C XHTML standards). It manages a database with bibliographical information and can store the full text of publications in PDF and PostScript. It can automatically retrieve bibliographical information (e.g., author, title) from the full text or abstract of a publication, with the possibility for manual correction. The concept of “author” (name, first name, institute, etc.) is explicitly represented, and users can manually indicate that different references (e.g., “D. Vermeir” and “Dirk Vermeir”) refer to the same author or institute (e.g., “VUB” and “Vrije Universiteit Brussel”). The system supports bulk update/import. It supports several access modes, including content access when full text or abstract is available, and access control based on authentication and network location.

## 1.3 Product overview
[NULL]

### 1.3.1 Product perspective
The PMS relies on a database and a web server. It is accessed by users via a web browser over HTTP and by administrators via a command line within the VUB network. Users are categorized by roles with differing permissions (Guest, VUB-Network User, Member, Publisher, Moderator, Administrator). Access from outside the VUB network is only possible for logged-in users; otherwise only Guest privileges are available.

#### System interfaces
- Database
  - MySQL database for storing publications, metadata, users, groups, permissions, statistics and system settings.
- Web server
  - Executes the PMS application, generates user interfaces, and issues queries to the database.

#### User interfaces
- Web interface
  - Accessible from any operating system via a standards-compliant web browser, including text-based browsers (e.g., Links2).
  - Complies with W3C XHTML 1.0 Transitional.
  - Error handling: users receive an error message indicating the cause; errors are logged to notify administrators.
- Command Line Interface (CLI)
  - Accessible to administrators from within the VUB network (shell access). CLI users are assumed to have Administrator privileges.

#### Hardware interfaces
- No specific hardware requirements for users are mandated.
- [N/A] for specific device protocols or configurations.

#### Software interfaces
- Operating system: Linux-based environment (e.g., Wilma web server).
- Runtime: Ruby 1.8 or later.
- Database: MySQL.
- Browsers: must support W3C XHTML.
- Export/format interfaces: export publications to HTML, PDF, PS; import formats include BibTeX and RIS.
- No frameworks are allowed.

#### Communications interfaces
- HTTP over TCP/IP port 80 between users’ browsers and the web server.

#### Memory constraints
- No specific memory usage limits for PMS.
- Maximum file size for publication uploads: [N/A].

#### Operations
- Authentication/authorization based on user role and network location (VUB vs. external).
- Typical operations include registration, login, search, view, download, upload, edit, export, and administration of users/groups.
- Error logging for operational failures.
- Backup and recovery: in case of corrupted database, administrators replace it with the most recent backup; during downtime, the system informs visitors that PMS is temporarily down.

#### Site adaptation requirements
- Requires Ruby 1.8 (or later) and Linux-based environment.
- Installation should be easy; specific installer mechanism: [N/A].

#### Interfaces with services
- [N/A]

### 1.3.2 Product functions
- Access control and authentication
  - Registration, account validation, login, logout, password retrieval/change.
  - Role-based permissions: Guest, VUB-Network User, Member, Publisher, Moderator, Administrator.
- Search and discovery
  - Basic and advanced search by keywords, authors, institutes, publication date range, references, and similarity (same authors, institutes, cited-by).
  - View search results, order results by title/author/year, paginate results.
- Publication access
  - View publication details and references; view details of multiple selections.
  - Display full text (if available).
  - Download single or multiple publications.
  - Export references in BibTeX or RIS.
- Publication management
  - Upload publications (PDF, PS; ODT noted in upload precondition), auto-extract metadata with manual correction.
  - Bulk upload/import (e.g., BibTeX, RIS).
  - Edit own publications (Publisher).
  - Edit departmental publications (Moderator).
  - Edit all publications (Administrator).
  - Manage author/institute equivalences (e.g., name variants).
- Administration
  - Control panel access (Administrator).
  - Create/delete users and groups.
  - Search users and edit user settings.
  - Search groups and edit group settings.
  - Change user levels (Moderator scope-limited; Administrator unrestricted).
  - Edit system configuration settings.

### 1.3.3 User characteristics
- Intended users are academic personnel and students with various technical backgrounds.
- All users are expected to have basic internet knowledge.

### 1.3.4 Limitations
- Hosting/OS: Must run on Linux (Wilma server).
- Technology: Implemented in Ruby; object-oriented; no frameworks allowed.
- Standards: Web interface must comply with W3C XHTML 1.0 Transitional; UML for design diagrams; SE1 coding conventions.
- Licensing: Only free software for tools and end product; justified library usage per SCMP.
- Access: External (non-VUB network) users must log in; guests have limited access.
- Usability constraints: Functions/options should be available in minimal clicks while maintaining structure.
- File and format limitations: Supported import/export formats as specified; maximum upload file size [N/A].

## 1.4 Definitions
- Customer: Person(s) who pay for the product and usually determine requirements; may be in the same organization as the supplier.
- Supplier: Person(s) who produce the product; may be in the same organization as the customer.
- User: Person(s) who operate or interact directly with the product; often different from customers.
- Bulk Update: Importing many publications (or abstracts) at once (e.g., through BibTeX files).
- PMS: Publication Management System.

# 2 References
- (1) IEEE Std 830-1998 Software Requirements Specification. http://www.scribd.com/doc/2620639/IEEE-8301998
- (2) Course Software Engineering project page. http://tinf2.vub.ac.be/~dvermeir/courses/software_engineering/projects/2007-2008/index.html
- (3) W3C XHTML 1.0 Specification. http://www.w3.org/TR/xhtml1/
- (4) Git. http://git.or.cz/
- (5) IEEE. http://www.ieee.org/
- (6) RDoc. http://rdoc.sourceforge.net/
- (7) SE1 group 1. http://wilma.vub.ac.be/~se1_0708/
- (8) VUB. http://www.vub.ac.be
- (9) W3C. http://www.w3.org/
- (10) SE1 Coding Conventions. http://wilma.vub.ac.be/~se1_0708/docs/coding_conventions/conventions.pdf
- (11) UML. http://www.uml.org/
- (12) SE1 SQAP. http://wilma.vub.ac.be/~se1_0708/docs/sqap/sqap.pdf
- (13) STD. TBDstdlink

# 3 Requirements
[NULL]

## 3.1 Functions
- Log in to the system from the internet
  - Actors: Anyone.
  - Preconditions: Internet access.
  - Description: User is presented with a login screen.
  - Exceptions: User must be registered and have username/password.
  - Result: User can log in.

- Log in to the system via the VUB network
  - Actors: Anyone.
  - Preconditions: Computer connected to VUB network.
  - Description: User can log in or start a search immediately.
  - Exceptions: None.
  - Result: User logs in or performs a search.

- Register for an account
  - Actors: Anyone.
  - Preconditions: Internet access or VUB network.
  - Description: User selects Register; provides username, password, name, login name, email, university, department; system checks username; user confirms.
  - Exceptions: None.
  - Result: An email is sent to the Administrator; user receives validation mail to confirm account.

- Log off
  - Actors: Members, Publishers, Moderators, Administrators.
  - Preconditions: Logged in.
  - Description: User selects Logout.
  - Exceptions: None.
  - Result: Redirect to start page; if connected to VUB network, redirect to search page; otherwise login page.

- Change password
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Registered user with valid username.
  - Description: User chooses change password; enters username and new password; confirms.
  - Exceptions: Invalid username.
  - Result: An email is sent to the Administrator.

- Retrieve password
  - Actors: Users with valid accounts not logged in.
  - Preconditions: Valid account.
  - Description: User requests password retrieval.
  - Exceptions: None.
  - Result: Password retrieval initiated.

- Search for publications
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Logged in or connected to VUB network.
  - Description: User selects Search; enters criteria (keywords with logical operators and symbols; authors ranked by importance; dates between; advanced criteria such as keywords and/or references).
  - Exceptions: None.
  - Result: List of publications matching criteria.

- View search results
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed.
  - Description: Results show title and main author; navigation via next/previous.
  - Exceptions: No results.
  - Result: Full list of results.

- Order results
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Valid search query results.
  - Description: Order by title, author(s), year.
  - Exceptions: None.
  - Result: Ordered results.

- Export and download results
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Valid search query results.
  - Description: Export one or more results to HTML, PDF, and PS; download.
  - Exceptions: None.
  - Result: Exported/downloaded files.

- Search publications on similarity
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Valid search query results.
  - Description: Find publications by same author(s), same institute, or cited in a result.
  - Exceptions: None.
  - Result: Similar publications listed.

- View publication details
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed and results viewed.
  - Description: Click title or view button to see details.
  - Exceptions: None.
  - Result: Title, authors, publication date, abstract, cited references, etc.

- View detailed information for multiple publications
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed and results viewed.
  - Description: Select multiple publications or use “View All”.
  - Exceptions: None.
  - Result: Details displayed for multiple selected publications.

- Download a single publication
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed; publication detail viewed or from results.
  - Description: Click Download in results or details view.
  - Exceptions: None.
  - Result: Electronic copy obtained.

- Download multiple publications
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed and results viewed.
  - Description: Click Download next to “All”.
  - Exceptions: None.
  - Result: Electronic copies obtained.

- Consult publication references
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed; publication details view available.
  - Description: Click reference button from results or details.
  - Exceptions: None.
  - Result: Reference details displayed.

- Consult references for multiple publications
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed and results viewed.
  - Description: Click references button next to “All”.
  - Exceptions: None.
  - Result: List of cited references.

- Display the full text of a publication
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Publication details view open.
  - Description: Click full text button.
  - Exceptions: Full text must be available.
  - Result: Full text displayed.

- View details of a reference
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Publication details view open.
  - Description: Click a cited reference to open its details.
  - Exceptions: Only if reference exists in the system.
  - Result: Reference detail view.

- Export references cited in a publication (BibTeX)
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Publication details view open.
  - Description: Select BibTeX format and confirm.
  - Exceptions: None.
  - Result: File with references in BibTeX format.

- Export references cited in a publication (RIS)
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Publication details view open.
  - Description: Select RIS format and confirm.
  - Exceptions: None.
  - Result: File with references in RIS format.

- View authors
  - Actors: VUB-network users, Members, Publishers, Moderators, Administrators.
  - Preconditions: Search executed and results viewed.
  - Description: Click an author name.
  - Exceptions: None.
  - Result: Author details shown.

- Edit personal data
  - Actors: Members, Publishers, Moderators, Administrators.
  - Preconditions: Logged in.
  - Description: Select Edit Settings; change data (e.g., password, university, department); confirm.
  - Exceptions: None.
  - Result: Personal data updated.

- Access your own publications
  - Actors: Publishers, Moderators, Administrators.
  - Preconditions: None.
  - Description: Select “My Publications”.
  - Exceptions: None.
  - Result: List/details of user’s publications.

- Edit your own publications
  - Actors: Publishers, Moderators, Administrators.
  - Preconditions: Logged in; accessed “My Publications”.
  - Description: Select a publication; edit and confirm; or tick “edit” in My Publications list.
  - Exceptions: Only own publications.
  - Result: Changes applied.

- Upload publications
  - Actors: Publishers, Moderators, Administrators.
  - Preconditions: Document available in supported formats (PDF, PS, ODT).
  - Description: Select document; system extracts metadata; system shows proposed metadata; user accepts or corrects and confirms.
  - Exceptions: None.
  - Result: New publication stored.

- Bulk uploading
  - Actors: Publishers, Moderators, Administrators.
  - Preconditions: Valid account and login; file(s) in RIS or BibTeX format.
  - Description: Import many publications (or abstracts) at once.
  - Exceptions: None.
  - Result: Multiple publications imported.

- Manage user levels (Moderator)
  - Actors: Moderators.
  - Preconditions: Moderator role; belongs to relevant department.
  - Description: Upgrade Member to Publisher or downgrade Publisher to Member within own department.
  - Exceptions: Outside jurisdiction.
  - Result: User level changed within department.

- Manage group permissions (Moderator)
  - Actors: Moderators.
  - Preconditions: Moderator with responsibility for target group.
  - Description: Change group permissions for groups under jurisdiction.
  - Exceptions: Outside jurisdiction.
  - Result: Group permissions updated.

- Edit authors (Moderator)
  - Actors: Moderators.
  - Preconditions: Moderator role.
  - Description: Change author information; manage equivalences (e.g., name variants).
  - Exceptions: None.
  - Result: Author information updated.

- Edit departmental publications (Moderator)
  - Actors: Moderators.
  - Preconditions: Moderator role; belongs to department.
  - Description: Edit/overwrite bibliographical details for departmental publications.
  - Exceptions: Outside department.
  - Result: Departmental publication details updated.

- Access control panel (Administrator)
  - Actors: Administrators.
  - Preconditions: Administrator role; logged in.
  - Description: Access control panel to edit user accounts and other administrative functions.
  - Exceptions: None.
  - Result: Administrative actions performed.

- Create/delete user (Administrator)
  - Actors: Administrators.
  - Preconditions: None.
  - Description: Create user with username, password, email, group; delete user by username with confirmation.
  - Exceptions: Username exists (create); username does not exist (delete).
  - Result: User created or removed.

- Create/search/delete group (Administrator)
  - Actors: Administrators.
  - Preconditions: Deleting requires empty group.
  - Description: Create group (group name, users); search groups; delete group by name with confirmation.
  - Exceptions: Group exists (create); group not found or not empty (delete).
  - Result: Group created, found, or deleted.

- Edit user settings (Administrator/Moderator)
  - Actors: Moderators, Administrators.
  - Preconditions: List of users from search.
  - Description: Select user; change settings; confirm.
  - Exceptions: None.
  - Result: User settings changed.

- Edit group settings (Administrator)
  - Actors: Administrators.
  - Preconditions: List of groups from search.
  - Description: Select group; change settings; confirm.
  - Exceptions: None.
  - Result: Group settings changed.

- Manage user levels (Administrator)
  - Actors: Administrators.
  - Preconditions: Administrator role.
  - Description: Change any user’s level to any other level.
  - Exceptions: None.
  - Result: User level changed.

- Edit all publications (Administrator)
  - Actors: Administrators.
  - Preconditions: Administrator role; logged in.
  - Description: Edit/overwrite bibliographical details of any publication.
  - Exceptions: None.
  - Result: Publication details updated.

- Edit system configuration settings (Administrator)
  - Actors: Administrators.
  - Preconditions: None.
  - Description: Access configuration panel; change system settings; confirm.
  - Exceptions: None.
  - Result: Configuration updated.

## 3.2 Performance requirements
[N/A]

## 3.3 Usability requirements
- The web interface shall be attractive, simple, and standards-compliant (W3C XHTML 1.0 Transitional).
- All functions and options should be reachable in the least number of clicks while maintaining clear structure.
- The web interface shall be accessible via text-based browsers (e.g., Links2) on Linux.
- The system shall provide clear error messages to users when requests fail and log errors for administrators.

## 3.5 Logical database requirements
- Types of information
  - Publications, bibliographical metadata, full texts, abstracts, cited references.
  - Users, groups, permissions, administrator settings.
  - Statistics and logs.
  - Author and institute entities, including user-declared equivalences (e.g., name/institute variants).
- Integrity and consistency
  - No pointers to deleted records; avoid redundant information; maintain referential integrity.
- Concurrency
  - Database must handle several simultaneous requests (via SQL statements).
- Accessing capabilities
  - Support search by keywords, authors, institutes, dates, references; export references; user/group queries.
- Security
  - Direct database access only via CLI by administrators; passwords stored encrypted.
- Backup and recovery
  - Backup structure required to restore data in case of server or disk problems.
- Data retention
  - [N/A]
- Frequency of use
  - [N/A]
- Data entities and relationships
  - [N/A]

## 3.6 Design constraints
- Technology and standards
  - Ruby as programming language; object-oriented implementation.
  - Web UI must comply with W3C XHTML 1.0 Transitional.
  - Design diagrams must follow UML.
  - Implementation must comply with SE1 coding conventions.
- Platform
  - Must run on Linux, specifically the Wilma web server.
- Development process and tooling
  - Code documented using RDoc.
  - Git used for configuration management.
  - Use of frameworks is not allowed.
  - Only free software may be used; permitted libraries/tools justified in the SCMP.
- Architecture and UX
  - Modular design to simplify expansions and replacements.
  - Minimal-click access to functions while maintaining structure.
- Installation
  - PMS should be easily installable; specific mechanism [N/A].

## 3.7 Software system attributes
- Reliability
  - Developed to minimize software faults; spiral model with 2 iterations. See SQAP and STD for testing processes.
- Availability
  - Available at all times from any computer meeting assumptions/dependencies, except when Wilma is unavailable.
  - In case of corrupted database, administrator restores from last backup. During downtime, PMS informs visitors it is temporarily down.
- Security
  - Each user account protected by password.
  - Passwords encrypted in transit and at rest; only PMS can access password hashes.
  - Respect user levels for editing/deleting/uploading publications and metadata.
  - Direct database access limited to administrators via CLI.
- Maintainability
  - Database maintained by administrators.
  - Global PMS maintenance (user levels, privileges) by administrators; departmental maintenance by moderators.
- Portability
  - Developed and tested for Wilma (Linux). Porting to other OSs may be possible if required software is available and adjustments are made; not fully implemented.

## 3.8 Supporting information
- Iterative delivery and requirement apportioning
  - First iteration delivers basic functions; second iteration adds and enhances functions.
  - Requirements are categorized as:
    - Critical (C): needed for the first iteration.
    - Sufficient (S): needed for the second iteration to have an adequate end product.
    - Optional (O): implemented if time permits.
- Optional/future functions
  - Support additional formats (e.g., MS Word).
  - Show list of documents that refer to a given publication on result pages.
  - Automatic recognition of author and institute equivalences (e.g., “D. Vermeir” = “Dirk Vermeir”; “VUB” = “Vrije Universiteit Brussel”).
  - If a BibTeX file contains only abstracts and URLs, PMS retrieves full texts via URLs.
  - Extend PMS to handle audio/video uploads (e.g., MP3, MPEG) with automatic recognition.

# 4 Verification
[NULL]

## 4.1 Functions
[N/A]

## 4.2 Performance requirements
[N/A]

## 4.3 Usability requirements
[N/A]

## 4.5 Logical database requirements
[N/A]

## 4.6 Design constraints
[N/A]

## 4.7 Software system attributes
[N/A]

# 5 Appendices
[NULL]

## 5.1 Assumptions and dependencies
- Users must have a web browser that supports W3C XHTML and a TCP/IP connection to the web server.
- HTTP traffic must be possible on the network connection between server and client.
- Command line users have access to the server shell and thus Administrator privileges.

## 5.2 Acronyms and abbreviations
- BibTeX: Tool for formatting lists of references, typically used with LaTeX.
- CLI: Command Line Interface.
- Git: Distributed revision control / software configuration management system.
- HTML: Hypertext Markup Language.
- HTTP: Hypertext Transfer Protocol.
- IEEE: Institute of Electrical and Electronics Engineers.
- OS: Operating System.
- PDF: Portable Document Format.
- PMS: Publication Management System.
- PS: PostScript.
- RDoc: Document generator for Ruby source.
- RIS: Tagged format for expressing bibliographic citations.
- Ruby: Reflective, dynamic, object-oriented programming language.
- SCMP: Software Configuration Management Plan.
- SE1: Software Engineering group 1.
- SQAP: Software Quality Assurance Plan.
- SRS: Software Requirements Specification.
- STD: Software Test Plan.
- TBD: To Be Determined.
- UML: Unified Modeling Language.
- VUB: Vrije Universiteit Brussel (Free University of Brussels).
- W3C: World Wide Web Consortium.
- Wilma: Multifunctional Linux server for the students of the faculty of sciences at the VUB.
