# 1 Introduction

## 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 product will support the functionality of a PMS, which can be accessed by command line and through a web browser (following the W3C XHTML-standards). The PMS will manage a database with bibliographical information and have the possibility to save the entire text of a publication in PDF and Postscript. It will automatically retrieve bibliographical information from the complete text of a publication and provide the possibility to correct this manually if the obtained information is incorrect or insufficient. The system will support several types of access, including access to the contents of a publication, if the complete text (or only the abstract) is available, and it will also support access control.

## 1.3 Product Overview

### 1.3.1 Product Perspective
The PMS will rely on a database and a web server, which can be accessed by a web browser and by command line. There will be multiple types of users, including Guests, VUB-Network Users, Members, Publishers, Moderators, and Administrators. Accessing the PMS from outside the VUB-network is only possible for logged-in users. The system interfaces include a MySQL database and a web server responsible for executing the PMS and generating the user interface. Users can access the PMS from any OS using a web browser, and administrators can access the system by command line from within the VUB-network. Communication between the PMS and users will be via an HTTP connection using TCP/IP port 80. The PMS will be easy to install with Ruby 1.8 (or later) and will run under a Linux-based environment.

### 1.3.2 Product Functions
The PMS will provide a hierarchical user structure with functions available to different user types, including registering an account, logging in, searching for publications, uploading and editing publications, managing user levels, and accessing a control panel. The system will support searching for publications by title, author(s), institute, and more, with advanced search options available. Users can also download publications and export references in various formats.

### 1.3.3 User Characteristics
The users of the PMS are expected to be academic personnel and students with various technical backgrounds. All users should have a basic knowledge of the internet.

### 1.3.4 Limitations
The design of the PMS should be modular to simplify the design and implementation of expansions and replacements. The PMS must be able to run on Linux, specifically the Wilma web server. The web interface will comply with the W3C XHTML 1.0 Transitional standard. Only free software can be used for the tools and the end product. The use of frameworks is not allowed.

## 1.4 Definitions
- **Customer**: The person(s) who pay for the product and usually decide the requirements.
- **Supplier**: The person(s) who produce a product for a customer.
- **User**: The person(s) who operate or interact directly with the product.
- **BibTEX**: A tool for formatting lists of references.
- **Bulk Update**: Refers to importing many publications (or abstracts) at once.
- **CLI**: Command Line Interface.
- **Git**: A distributed revision control/software configuration management project.
- **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**: A tagged format for expressing bibliographic citations.
- **Ruby**: A 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 Modelling Language.
- **VUB**: Free University of Brussels.
- **W3C**: World Wide Web Consortium.
- **Wilma**: A multifunctional Linux server for the students of the faculty of sciences at the VUB.

# 2 References

1. IEEE Std 830-1998: http://www.scribd.com/doc/2620639/IEEE-8301998
2. Software Engineering Course: http://tinf2.vub.ac.be/~dvermeir/courses/software_engineering/projects/2007-2008/index.html
3. W3C XHTML 1.0 Transitional: 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: http://wilma.vub.ac.be/~se1_0708/
8. VUB: http://www.vub.ac.be
9. W3C: http://www.w3.org/
10. Coding Conventions: http://wilma.vub.ac.be/~se1_0708/docs/coding_conventions/conventions.pdf
11. UML: http://www.uml.org/
12. SQAP: http://wilma.vub.ac.be/~se1_0708/docs/sqap/sqap.pdf
13. TBDstdlink

# 3 Requirements

## 3.1 Functions
The PMS will support various functions, including logging in, registering accounts, searching for publications, viewing search results, downloading publications, consulting references, editing personal data, and managing user and group settings. The system will also allow for uploading publications and managing publication details.

## 3.2 Performance Requirements
[N/A]

## 3.3 Usability Requirements
[N/A]

## 3.5 Logical Database Requirements
All data will be saved in the database, including static and dynamic information, statistics, publications, and administrator settings. The database must remain consistent at all times and be capable of handling several requests simultaneously using SQL statements. A backup structure is required to save all data in case of server or disk problems.

## 3.6 Design Constraints
The PMS web interface must conform to the W3C XHTML 1.0 Transitional standard. The implementation must be compliant with the Coding Conventions of SE1 and be object-oriented. Design diagrams must follow the UML standard.

## 3.7 Software System Attributes

### 3.7.1 Reliability
The PMS is developed to minimize software faults using a spiral model with two iterations. For more information, see the SQAP and STD of SE1.

### 3.7.2 Availability
The PMS will be available at all times from any computer, except when Wilma is not available. In case of a corrupted database, the Administrator should replace it with the last available backup.

### 3.7.3 Security
Every user account is protected with a personal password, which should be encrypted when submitted and stored. Direct access to the database is only allowed for Administrators using the CLI.

### 3.7.4 Maintainability
The database should be maintained by the Administrator(s), and the PMS should be maintained globally by Administrators and at the departmental level by Moderators.

### 3.7.5 Portability
The PMS is developed to run on Wilma, a Linux-based platform, but can be relocated to a server with a different OS if necessary software is available.

## 3.8 Supporting Information
[N/A]

# 4 Verification

## 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

## 5.1 Assumptions and Dependencies
The 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 Administrator privileges.

## 5.2 Acronyms and Abbreviations
- **CLI**: Command Line Interface
- **Git**: A distributed revision control/software configuration management project
- **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**: A tagged format for expressing bibliographic citations
- **Ruby**: A 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 Modelling Language
- **VUB**: Free University of Brussels
- **W3C**: World Wide Web Consortium
- **Wilma**: A multifunctional Linux server for the students of the faculty of sciences at the VUB