# 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) for use by customers and suppliers of the system, including designers, testers and the implementation unit.

## 1.2 Scope
- Product name: Publications Management System (PMS).
- What it does:
  - Manages a database of bibliographic information and associated publication full texts (PDF, PS; ODT mentioned).
  - Provides access via web browser (W3C XHTML-compliant) and command line for administrators.
  - Supports automated extraction of bibliographic metadata (author, title, etc.) from uploaded documents or abstracts, with manual correction.
  - Allows manual disambiguation of authors and institutes (e.g., “D. Vermeir” and “Dirk Vermeir”; “VUB” and “Vrije Universiteit Brussel”).
  - Supports bulk importing of publications (e.g., BibTeX/RIS).
  - Provides access control by user roles and by network location (VUB-network vs external).
  - Supports searching, viewing, exporting and downloading publications and references.
- Application, benefits, objectives:
  - Intended for academic staff and students to efficiently manage, discover, and access publications.
  - Objectives include simple, standards-compliant web access, role-based permissions, and minimal-click workflows.

## 1.3 Product overview
[NULL]

### 1.3.1 Product perspective
The PMS is a web application backed by a database and a web server, accessible via web browsers (including text-based) and a command line interface for administrators. It recognizes multiple user roles with increasing privileges: Guest, VUB-Network User, Member, Publisher, Moderator and Administrator.

#### System interfaces
- Database:
  - Interface to a MySQL database for storing publications, metadata, user accounts, settings and statistics.
- Web server:
  - Executes the PMS, processes requests, queries the database and generates user interfaces.

#### User interfaces
- Web:
  - Accessible from any OS via standards-compliant browsers; explicitly supports Linux users with text-based browsers (e.g., Links2).
  - Provides clear, structured pages optimized to minimize clicks.
  - Error handling: users receive error messages stating causes; errors are logged for administrators.
  - Complies with W3C XHTML 1.0 Transitional.
- Command line:
  - Administrators can access PMS via CLI within the VUB-network.

#### Hardware interfaces
- [N/A]

#### Software interfaces
- Required software and platforms:
  - Ruby 1.8 or later (Linux environment).
  - MySQL database.
  - Web server hosting PMS on the Wilma Linux server (VUB).
  - RDoc for code documentation.
  - Git for configuration management.
- Formats:
  - Upload/import supports BibTeX and RIS; publications in PDF and PS (ODT mentioned).
- Version/specification numbers and interface message formats: [N/A]

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

#### Memory constraints
- No specific memory usage limits defined for PMS.
- Maximum publication file size: TBD.

#### Operations
- Modes:
  - Guest (anonymous, outside VUB-network): register, log in, validate account, retrieve password.
  - VUB-Network User (by IP recognition): search and download without logging in.
  - Member/Publisher/Moderator/Administrator: role-based capabilities after login.
- Backup and recovery:
  - Database backups required; administrators restore latest backup upon corruption.
- Error handling:
  - Errors presented to users and logged for administrative review.

#### Site adaptation requirements
- Installation on Linux with Ruby 1.8+.
- Deployment target: Wilma server at VUB.
- Installation method: TBD.

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

### 1.3.2 Product functions
- Access and accounts:
  - Register and validate accounts; log in/out; retrieve/change password; manage personal settings.
- Search and discovery:
  - Basic and advanced search by keywords, authors, institute and publication dates, with Boolean operators and quoting.
  - Result handling: sorting, viewing details, pagination, similarity-based discovery (same author/institute/references).
- Publications:
  - View abstract and full text; download single or multiple publications.
  - View and export references (BibTeX/RIS); view author details.
- Upload and curation:
  - Upload single publications (PDF/PS; ODT mentioned) with automatic metadata extraction and manual correction.
  - Bulk import (e.g., BibTeX/RIS).
  - Publisher edits own publications; Moderator edits departmental publications; Administrator edits all publications.
- Administration and moderation:
  - Manage user roles and group permissions; create/edit/delete users and groups.
  - Access control panel; edit system configuration.
- Optional/future:
  - More formats (e.g., MS Word), automatic entity disambiguation, fetch full texts via URLs in BibTeX, support audio/video uploads and recognition.

### 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
- Regulatory/policy: only free software for tools and end product.
- Platform: must run on Linux, specifically the Wilma server.
- Standards: web interface must comply with W3C XHTML 1.0 Transitional; design artifacts use UML; code follows SE1 coding conventions.
- Technology constraints: Ruby language; object-oriented implementation; RDoc for documentation; Git for configuration management; no frameworks allowed.
- Usability: functions should be available in minimal clicks while maintaining structure.
- Installation: should be easy; details TBD.
- Performance/capacity specifics: [N/A]
- Safety/security: role-based access must be enforced; password handling must be encrypted.

## 1.4 Definitions
- Customer: Person(s) who pay for the product and typically decide requirements.
- Supplier: Person(s) who produce a product for a customer.
- User: Person(s) who operate or interact directly with the product.
- Bulk Update: Importing many publications (or abstracts) at once (e.g., through BibTeX files).
- Guest: Anonymous user not connected to VUB-network; can only register or log in.
- VUB-Network User: User connected to the VUB-network (recognized by IP); can search and download without logging in.
- Member: Logged-in user who can search and download.
- Publisher: Logged-in user who can also upload publications and edit own uploads.
- Moderator: Logged-in user who can additionally edit/delete publications within a department and manage certain permissions.
- Administrator: Full privileges including technical administration, user and group management, and editing any publication.

# 2 References
- Compliance
  - W3C XHTML 1.0 Transitional, World Wide Web Consortium. http://www.w3.org/TR/xhtml1/
  - SE1 Coding Conventions. http://wilma.vub.ac.be/~se1_0708/docs/coding_conventions/conventions.pdf
  - UML Standard, Object Management Group. http://www.uml.org/
- Guidance
  - IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications. http://www.scribd.com/doc/2620639/IEEE-8301998
  - Software Engineering course project page (2007–2008). http://tinf2.vub.ac.be/~dvermeir/courses/software_engineering/projects/2007-2008/index.html
  - Git. http://git.or.cz/
  - IEEE home. http://www.ieee.org/
  - RDoc. http://rdoc.sourceforge.net/
  - SE1 project portal. http://wilma.vub.ac.be/~se1_0708/
  - VUB home. http://www.vub.ac.be
  - W3C home. http://www.w3.org/
  - SQAP (SE1). http://wilma.vub.ac.be/~se1_0708/docs/sqap/sqap.pdf
  - STD (SE1). TBDstdlink

# 3 Requirements
[NULL]

## 3.1 Functions
- Access and authentication
  - Log in from Internet or VUB-network; register and validate accounts; log out; retrieve/change password; change personal data.
- Search and results
  - Execute basic and advanced searches by keywords, authors (ranked), institutes, date ranges.
  - View results with pagination; sort by title, authors, year; search by similarity (same author/institute/references).
- Publication access
  - View details (title, authors, publication date, abstract, cited references).
  - View full text when available; download single or multiple publications.
- References and authors
  - View references of a publication; view references for multiple results; export references in BibTeX or RIS; view author details.
- Publisher and higher roles
  - Access “My Publications”; edit own publications.
  - Upload publications (PDF/PS; ODT mentioned) with automatic metadata extraction and manual correction; bulk upload/import via BibTeX/RIS.
- Moderation
  - Manage user levels within department (upgrade Member to Publisher; downgrade Publisher to Member).
  - Manage group permissions; edit author information; edit departmental publications.
- Administration
  - Access control panel; create/delete users; create/search/edit/delete groups; change any user level; edit any publication; edit system configuration.
- Error handling and logging
  - On request errors, present user-facing messages indicating causes and log errors for administrators.
- Preconditions, exceptions and outcomes
  - Preconditions include valid accounts for protected functions; VUB-network connection for certain guest-level access; availability of full text for viewing full texts; ownership/role constraints for edits.
  - Exceptions include invalid or non-existing usernames; duplicate usernames or group names; empty/non-empty group constraints; reference presence in system.

## 3.2 Performance requirements
[N/A]

## 3.3 Usability requirements
- Web interface shall be clear, structured and optimized to minimize clicks for all functions while maintaining usability.
- Interface shall comply with W3C XHTML 1.0 Transitional.
- System shall be usable via standards-compliant browsers, including text-based browsers on Linux (e.g., Links2).
- Error messages shall clearly state the cause of errors, and system shall log such errors.
- Search results shall support intuitive sorting, pagination and multi-select actions.

## 3.5 Logical database requirements
- Information types:
  - Publications, full texts, abstracts, bibliographic metadata, references, authors, institutes, user accounts, roles, groups, permissions, configuration settings, statistics, logs.
- Accessing capabilities:
  - Concurrent access via SQL; support multiple simultaneous requests.
- Data entities and relationships:
  - Publications linked to authors and institutes; publications linked to cited references; users linked to roles and groups.
- Integrity constraints:
  - No pointers to deleted records; avoid redundant information; maintain referential integrity.
- Security:
  - Passwords stored encrypted; direct database access limited to administrators via CLI; enforce role-based access to create/read/update/delete operations.
- Backup and recovery:
  - Maintain backup structure to restore data in case of server or disk issues.
- Frequency of use: [N/A]
- Data retention requirements: [N/A]

## 3.6 Design constraints
- Technology and language:
  - Ruby; object-oriented implementation; no frameworks allowed.
- Documentation and process:
  - RDoc for code documentation; Git for configuration management; SE1 coding conventions.
- Standards:
  - Web UI compliant with W3C XHTML 1.0 Transitional; UML for design diagrams.
- Platform:
  - Linux-based deployment (Wilma server).
- Licensing:
  - Only free software for tools and end product.
- Modularity:
  - Modular design to ease expansions and replacements.
- Installation:
  - Should be easily installable; details TBD.

## 3.7 Software system attributes
- Reliability
  - Developed to minimize software faults; spiral model with two iterations; testing practices referenced in SQAP and STD.
- Availability
  - Intended to be available at all times subject to Wilma server availability; during downtime, present a temporary unavailability error.
  - In case of corrupted database, administrators restore from latest backup.
- Security
  - Unique user accounts protected by passwords; password transmission and storage encrypted.
  - Enforce role-based permissions across all operations; restrict direct DB access to administrators via CLI.
- Maintainability
  - Database maintained by administrators; global role/privilege maintenance by administrators; departmental maintenance by moderators.
- Portability
  - Implemented and tested on Wilma (Linux). Possible to port to other OSes with required software and adjustments; not fully implemented.

## 3.8 Supporting information
- Iterative delivery (apportioning of requirements):
  - Critical: first iteration basic functions.
  - Sufficient: second iteration completes and enhances functions.
  - Optional: implemented if time permits.
- Optional/future functions:
  - Additional document formats (e.g., MS Word).
  - Result page listing documents that cite a publication.
  - Automatic recognition of equivalent authors/institutes.
  - Fetch full texts via URLs provided in BibTeX with abstracts.
  - Support for audio/video uploads (e.g., MP3, MPEG) with automatic recognition.

# 4 Verification
[NULL]

## 4.1 Functions
- Verification is covered by SE1 SQAP and STD, which define test plans and cases mapping to each functional area and user role.
- [N/A]

## 4.2 Performance requirements
- [N/A]

## 4.3 Usability requirements
- Conformance tests for W3C XHTML 1.0 Transitional.
- Cross-browser tests including text-based browser on Linux.
- Heuristic evaluations for minimal-click navigation; validation of error message clarity.
- [N/A]

## 4.5 Logical database requirements
- Verify referential integrity under concurrent access.
- Validate encrypted password storage and restricted DB access controls.
- Exercise backup and restore procedures.
- [N/A]

## 4.6 Design constraints
- Review conformance to SE1 coding conventions, UML artifact completeness, Ruby/OOP usage, and absence of disallowed frameworks.
- Validate licensing of used tools as free software.
- [N/A]

## 4.7 Software system attributes
- Reliability: tests per STD; defect tracking and iteration reviews.
- Availability: simulate downtime and database corruption to validate user messaging and recovery.
- Security: verify encryption of passwords in transit and at rest; validate role-based access control.
- Maintainability: review modularity and documentation completeness (RDoc).
- Portability: smoke test on target Linux environment (Wilma).
- [N/A]

# 5 Appendices
[NULL]

## 5.1 Assumptions and dependencies
- Users have a web browser supporting W3C XHTML and TCP/IP connectivity to the web server.
- HTTP traffic is permitted between server and client.
- Command line users have shell access on the server and thus administrator privileges.
- Deployment and availability depend on the Wilma server environment.

## 5.2 Acronyms and abbreviations
- BibTeX: Tool for formatting lists of references used with LaTeX.
- CLI: Command Line Interface.
- Git: Distributed version control system.
- HTML: Hypertext Markup Language.
- HTTP: Hypertext Transfer Protocol.
- IEEE: Institute of Electrical and Electronics Engineers.
- OS: Operating System.
- PDF: Portable Document Format.
- PMS: Publications Management System.
- PS: PostScript.
- RDoc: Document generator for Ruby source.
- RIS: Tagged format for 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 science faculty students.
