# 1 Introduction

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

## 1.2 Scope
The PMS is a software product that:
- Provides a web and command line interface to manage a database of publications and associated bibliographical information.
- Stores and serves publication full texts (e.g., PDF and PostScript) where available.
- Automatically retrieves bibliographical metadata (e.g., author, title) from uploaded documents and allows manual correction.
- Supports author and institute identity reconciliation (e.g., recognizing that “D. Vermeir” and “Dirk Vermeir” are the same author; “VUB” and “Vrije Universiteit Brussel” the same institute).
- Supports bulk updates/imports (e.g., BibTeX/RIS files).
- Provides search, browse, download and export capabilities with access control based on user roles and network location.

The PMS is intended for academic staff and students to manage and access publications efficiently through standards-compliant web interfaces and a CLI for administrators.

## 1.3 Product overview

### 1.3.1 Product perspective
The PMS consists of a web application backed by a relational database. It is accessed by:
- Web browser clients over HTTP.
- A command line interface (CLI) available to administrators on the university server.

Multiple user roles determine accessible functionality:
- Guest (anonymous, outside VUB network): register, login, account validation, password retrieval.
- VUB-Network User (connected via VUB network, not logged in): search, view, download.
- Member (logged-in): VUB-Network User functions plus edit own account, log off.
- Publisher (logged-in): Member functions plus upload, bulk upload, and edit own publications.
- Moderator (logged-in): Publisher functions plus moderate authors, departmental publications, group permissions and user level changes within their department.
- Administrator (logged-in): Moderator functions plus full user/group management, system configuration and edit any publication.

Accessing the PMS from outside the VUB network requires login; anonymous access outside the network is limited to Guest privileges.

#### System interfaces
- Database: MySQL database used to store publications, metadata, users, groups, configuration, logs and statistics.
- Web server: Executes the PMS application, mediates database access and generates user-facing web pages.

#### User interfaces
- Web UI accessible from any OS via standards-compliant browsers; explicitly supports Linux users and text-based browsers (e.g., Links2).
- CLI access for administrators from within the VUB network.
- The web interface complies with W3C XHTML 1.0 Transitional.
- Error conditions present an explanatory message to the user and are logged for administrators.

#### Hardware interfaces
- No specific hardware requirements for end users.
- Server runs on the Wilma Linux server at VUB.

#### Software interfaces
- Operating system: Linux (Wilma server).
- Programming language: Ruby 1.8 or later.
- Database: MySQL (SQL-based).
- Import/export formats: BibTeX and RIS for citations; publication files in PDF and PS (ODT noted for upload support).
- Email service: Used to send validation emails and administrator notifications.
- Version control and documentation tools used during development: Git and RDoc.

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

#### Memory constraints
- No explicit limit on PMS memory usage.
- Maximum upload file size for publications: [N/A] (TBD in original).

#### Operations
- Users must be logged in or connected to the VUB network to access most functionality.
- Error logging is performed to inform administrators of technical issues.
- Backup and restore procedures are required to recover from database corruption or failures.

#### Site adaptation requirements
- Installable on Linux with Ruby 1.8+ and required dependencies.
- Deployment targeted to the Wilma server environment.
- Installation procedure: [N/A] (TBD in original).

#### Interfaces with services
- Email service for account validation and administrative notifications.

### 1.3.2 Product functions
- Account management: registration, validation, login/logout, password retrieval, edit personal settings.
- Search and discovery: basic and advanced search by keywords, author(s), date range; similarity search (by author, institute, references).
- Results handling: paging, ordering (by title, authors, year), view details, view references, view multiple items, export references (BibTeX, RIS), download single or multiple full texts, view full text where available.
- Publication management (Publisher+): upload publications (PDF/PS/ODT), metadata extraction with manual correction, author/institute reconciliation, bulk upload, edit own publications.
- Moderation (Moderator+): edit authors, edit departmental publications, manage group permissions, upgrade/downgrade users within department.
- Administration (Administrator): access control panel; create/edit/delete users and groups; change any user’s level; edit any publication; edit system configuration settings.

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

### 1.3.4 Limitations
- Must run on Linux (Wilma server).
- Must use Ruby; frameworks are not allowed.
- Only free software tools and components may be used.
- Web UI must comply with W3C XHTML 1.0 Transitional.
- System should be modular to simplify extensions and replacements.
- Minimal-click navigation while maintaining clear structure.
- Coding must follow SE1 coding conventions.
- Diagrams must use UML standards.

## 1.4 Definitions
- Customer: The person(s) who pay for the product and usually decide the requirements.
- Supplier: The person(s) who produce the product for a customer.
- User: The person(s) who operate or interact directly with the product.
- Guest: Anonymous user not on the VUB network; can register, login, validate, retrieve password.
- VUB-Network User: User connected to the VUB network (recognized by IP), not logged in; can search and download.
- Member: Logged-in user with search and download privileges and can edit own account.
- Publisher: Logged-in user who can upload, bulk upload and edit own publications.
- Moderator: Logged-in user who can moderate authors, publications and user/group permissions in their department.
- Administrator: Logged-in user with full control over users, groups, configuration and publications.
- Bulk Update / Bulk Upload: Importing many publications (or abstracts) at once (e.g., through BibTeX or RIS files).
- Author/Institute reconciliation: Manually indicating equivalent author or institute names (e.g., “D. Vermeir” equals “Dirk Vermeir”).

# 2 References
- Compliance
  - W3C XHTML 1.0 Transitional: http://www.w3.org/TR/xhtml1/
  - SE1 Coding Conventions: http://wilma.vub.ac.be/~se1_0708/docs/coding_conventions/conventions.pdf
  - UML Standard: http://www.uml.org/
- Guidance
  - IEEE Std 830-1998: http://www.scribd.com/doc/2620639/IEEE-8301998
  - Git: http://git.or.cz/
  - IEEE: http://www.ieee.org/
  - RDoc: http://rdoc.sourceforge.net/
  - SE1 course project site: http://tinf2.vub.ac.be/~dvermeir/courses/software_engineering/projects/2007-2008/index.html
  - SE1 team site: http://wilma.vub.ac.be/~se1_0708/
  - VUB: http://www.vub.ac.be
  - W3C: http://www.w3.org/
  - SQAP (SE1): http://wilma.vub.ac.be/~se1_0708/docs/sqap/sqap.pdf
  - STD (SE1): TBDstdlink

# 3 Requirements

## 3.1 Functions
Role-based access model:
- Guest: register account; login; validate new account; retrieve password.
- VUB-Network User: all Guest functions; search; advanced search; view results; order results; export/download results; similarity search; view details; view references; view multiple; download single/multiple; view full text (if available); view author details.
- Member: all VUB-Network User functions; change account details; log off.
- Publisher: all Member functions; upload publication (metadata extraction and correction, author/institute reconciliation); edit own publications; bulk upload.
- Moderator: all Publisher functions; manage user levels within department; manage group permissions; edit authors; edit departmental publications.
- Administrator: all Moderator functions; access control panel; create/delete users; create/delete groups; change any user level; edit any publication; edit system configuration settings.

Use cases:
- Log in from the internet
  - Preconditions: Internet access; registered user with username/password.
  - Description: Display login screen; user logs in.
  - Result: User is logged in or error shown if invalid.
- Log in via VUB network
  - Preconditions: Connected to VUB network.
  - Description: Display screen allowing login or immediate search.
  - Result: User can login or search.
- Register for an account
  - Preconditions: Internet access or VUB network.
  - Description: User selects Register; enters username, password, name, login name, email, university, department; system checks username uniqueness; user confirms.
  - Result: Validation email sent; administrator notified.
- Log off
  - Preconditions: Logged in.
  - Description: User selects Logout.
  - Result: Redirect to start page or search page if on VUB network.
- Change password (forgotten password)
  - Preconditions: Previously registered; valid username.
  - Description: User chooses change password; enters username and new password; confirms.
  - Result: Administrator notified by email; password updated per policy.
- Search for publications
  - Preconditions: Logged in or connected to VUB network.
  - Description: User selects search; enters criteria (keywords with logical ops and quotes, authors ranked by importance, date range); optionally advanced criteria (keywords, references).
  - Result: List of matching publications.
- View search results
  - Preconditions: Search performed.
  - Description: Display paged results; show title and main author; navigate pages.
  - Result: Full list of matches accessible.
- View publication details
  - Preconditions: Results available.
  - Description: Click title or view button to see details.
  - Result: Display title, authors, publication date, abstract, cited references, etc.
- View details for multiple publications
  - Preconditions: Results available.
  - Description: Select multiple results or “View All.”
  - Result: Details displayed for selected items.
- Download a single publication
  - Preconditions: On results or details view.
  - Description: Click Download for the item.
  - Result: File obtained if available.
- Download multiple publications
  - Preconditions: Results available.
  - Description: Click Download “All.”
  - Result: Files obtained.
- Consult publication references
  - Preconditions: On results or details view of a publication.
  - Description: Click references button.
  - Result: Display referenced items’ details.
- Consult references for multiple publications
  - Preconditions: Results available.
  - Description: Click references “All.”
  - Result: List of all cited references.
- Display full text of a publication
  - Preconditions: On publication details view.
  - Description: Click Full Text (if available).
  - Result: Full text displayed.
- View authors
  - Preconditions: Results available.
  - Description: Click author name.
  - Result: Author details shown.
- Edit personal data
  - Preconditions: Logged in.
  - Description: Open Edit Settings; modify password, university, department; confirm.
  - Result: Personal data updated.
- My publications (access)
  - Preconditions: Logged in as Publisher/Moderator/Administrator.
  - Description: Select “My Publications.”
  - Result: List and details of user’s publications.
- Edit own publications
  - Preconditions: Logged in as Publisher/Moderator/Administrator; have own publications.
  - Description: Select publication; edit details; confirm.
  - Result: Changes applied.
- Upload publications
  - Preconditions: Supported file format (PDF, PS, ODT).
  - Description: Select file; system extracts metadata; user reviews/corrects; confirm; may reconcile author/institute names.
  - Result: New publication stored.
- Search users
  - Preconditions: Moderator/Administrator; logged in.
  - Description: Select Search Users; enter criteria; view results.
  - Result: Matching users listed.
- Edit user settings
  - Preconditions: Moderator/Administrator; have user search results.
  - Description: Select a user; change settings; confirm.
  - Result: Settings updated.
- Create user
  - Preconditions: Administrator.
  - Description: Enter username, password, email, group; confirm.
  - Result: New user created.
- Delete user
  - Preconditions: Administrator.
  - Description: Enter username; review details; confirm.
  - Result: User deleted.
- Create group
  - Preconditions: Administrator.
  - Description: Enter group name and users; confirm.
  - Result: Group created.
- Search group
  - Preconditions: Administrator.
  - Description: Enter search criteria; view results.
  - Result: Matching groups listed.
- Delete group
  - Preconditions: Administrator; group must be empty.
  - Description: Enter group name; review; confirm.
  - Result: Group deleted.
- Edit group settings
  - Preconditions: Administrator; have group search results.
  - Description: Select group; change settings; confirm.
  - Result: Group settings updated.
- Edit system configuration settings
  - Preconditions: Administrator.
  - Description: Access configuration panel; change settings; confirm.
  - Result: Configuration updated.
- Edit authors (Moderator+)
  - Preconditions: Moderator or above.
  - Description: Modify author information.
  - Result: Author records updated.
- Manage group permissions (Moderator+)
  - Preconditions: Moderator or above.
  - Description: Adjust group permissions within jurisdiction.
  - Result: Permissions updated.
- Manage user levels
  - Preconditions: Moderator (within department) or Administrator (system-wide).
  - Description: Upgrade/downgrade user levels; confirm.
  - Result: User level changed.

Error handling and logging:
- Errors during requests present a message indicating the cause and are logged for administrator review.

## 3.2 Performance requirements
[N/A]

## 3.3 Usability requirements
- Web interface shall be attractive, simple and standards-compliant (W3C XHTML 1.0 Transitional).
- All functions and options should be available in the least number of clicks while maintaining clear structure.
- The interface shall support text-based browsers (e.g., Links2) on Linux.
- Users shall receive clear error messages on failures.

## 3.5 Logical database requirements
- Data scope: publications (metadata and files), authors, institutes, users, groups, permissions, system configuration, statistics, logs.
- Access and concurrency: must handle multiple concurrent requests via SQL.
- Integrity: maintain referential integrity; no dangling references; minimize redundancy; support author/institute reconciliation mappings.
- Security: restrict direct database access to administrators via CLI; store passwords encrypted.
- Backup and recovery: provide backup structure to restore all data in case of server/disk problems.
- Data retention: [N/A]
- Frequency of use and access patterns: [N/A]
- Data entities and relationships: [N/A] (UML/ER models not provided in original)

## 3.6 Design constraints
- Web UI must comply with W3C XHTML 1.0 Transitional.
- Implementation language: Ruby; object-oriented.
- No frameworks are allowed.
- Target platform: Linux (Wilma server).
- Use Git for configuration management.
- Code documentation with RDoc.
- Only free software may be used for tools and the end product.
- Coding must comply with SE1 coding conventions.
- Design diagrams must use UML.

## 3.7 Software system attributes
- Reliability
  - Developed to minimize software faults. Project follows a spiral model with two iterations. See SQAP and STD for testing processes.
- Availability
  - PMS should be available at all times, except when the Wilma server is unavailable. In case of database corruption, administrators restore from the latest backup. During outages, the PMS displays a temporary downtime error.
- Security
  - Each account protected by a personal password.
  - Passwords must be encrypted in transit and at rest; only PMS accesses hashed passwords.
  - Direct database access permitted only to administrators via CLI.
  - User roles and permissions must be enforced for edit/delete/upload operations.
- Maintainability
  - Database maintained by administrators.
  - User levels and privileges maintained by administrators; moderators handle departmental scope.
- Portability
  - Developed and tested for Wilma (Linux). Porting to other OSs may be possible with necessary software and adjustments; not fully implemented.

## 3.8 Supporting information
- Iterative delivery (apportioning of requirements)
  - Critical (C): first iteration features to deliver a working prototype with basic functions.
  - Sufficient (S): second iteration features to provide an adequate end product and enhance existing features.
  - Optional (O): implemented if time permits.
- Optional/future functions
  - Support additional document formats (e.g., MS Word).
  - Show documents citing a publication on the results page.
  - Automatic recognition of author/institute equivalences.
  - Fetch full texts via URLs provided in BibTeX abstracts files.
  - Extend PMS to handle audio/video uploads (e.g., mp3, mpeg) with automatic recognition.

# 4 Verification

## 4.1 Functions
[N/A] (See SQAP [12] and STD [13] for verification and testing of functional requirements.)

## 4.2 Performance requirements
[N/A] (See SQAP [12] and STD [13] for performance verification.)

## 4.3 Usability requirements
[N/A] (See SQAP [12] and STD [13] for usability verification.)

## 4.5 Logical database requirements
[N/A] (See SQAP [12] and STD [13] for database verification and backup/restore test procedures.)

## 4.6 Design constraints
[N/A] (See SQAP [12] and STD [13] for compliance checks with standards and constraints.)

## 4.7 Software system attributes
[N/A] (See SQAP [12] and STD [13] for reliability, availability, security, maintainability and portability verification.)

# 5 Appendices

## 5.1 Assumptions and dependencies
- Users have a web browser supporting W3C XHTML and a TCP/IP connection to the web server.
- HTTP traffic is permitted between server and client.
- CLI users have access to the server shell and administrator privileges.

## 5.2 Acronyms and abbreviations
- BibTeX: Tool for formatting reference lists, 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 (e.g., Linux, MS Windows XP, Mac OS X).
- PDF: Portable Document Format.
- PMS: Publications Management System.
- PS: PostScript.
- RDoc: Documentation 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 VUB faculty of sciences students.