\documentclass[a4paper,11pt]{article}
\usepackage[german]{babel}
\usepackage{epsfig}
\usepackage{verbatim}
\newcommand{\url}[1]{\nobreak{\it#1}}
\newcommand{\tilda}{\def\~{}}
\newcommand{\grad}{\ensuremath{^\circ}}
\usepackage{german}
%\usepackage{mfpic}
\usepackage{graphicx}
\usepackage{graphicx}
\thispagestyle{empty}
\selectlanguage{\austrian}
\title{Requirement Specification/Dutybook for PastEd (simplified)}
\author{
Thomas Baldauf\\
\"On\c{c}\"u Pinar Kaya\\
Markus Millendorfer
Alexander Oelzant,\\
Johannes Truschnigg,\\
}
\begin{document}
\maketitle

\section[1]{
 Project Aims
}

The project's goal is to provide an easy to use Source Code Paste Service
(optionally secured with authentication tokens). The intended benefit is to be
able to provide a simple, easy to use service for presenting small functions of
a few lines of code by a simple one-step process: after pasting it (thus the name)
into a web form and submitting, the server immediately returns a URL for
this Code, which can furthermore be discussed, annotated and removed.

\section{
 Intended Use of Products 
}

Storing and sharing small pieces of code in online Platforms, particularly
Chat/IM

\section{
 Product Environment
}

Product runtime environment is an open source web server, usage via any
standards compliant web browser

\section{
 Product Functions
}

\begin{itemize} 
\item
Creating, Modifying, Distributing, Deleting code snippets
\item
Storage in a Database
\item
middle layer for access, storage, retrieval
\item 
CLI tools (TODO: specs)
\item
admin interface (deletions, attributions, blocking?)
\item
Presentation of submitted code snippets in standards-compliant (secure)
highlighting via an external application (caveat: exploits)
\end{itemize} 

\section{
 Product Parameters/Data
}

Code Snippets (with attribution/contact data/language)
Admin data
actions (ip addresses)
permissions (by admin user)

\section{
 Product Performance
}

For security reasons, a maximum size for publishable data should
be enforced, initially this value is expected to be reasonable
at 64 ko but has to be easily configurable. Similarly, a maximum number 
of pastes per address and time should be enforced, a value of
1 paste per minute and address is to be set as an inital limit.

No guarantees about the retention time of data will be provided,
however a reasonably long time limit is to be determined by available server
space. The server should automatically delete old data if space
runs low

\section{
 User Interface
}

Mainly the product is to interface over a web server via a
standards-compliant web browser, a CLI for simpler integration with versioning
systems, IDEs, editors should also be implemented.

The user interface is to adhere to open standards as published by
bodies of the IEEE, W3C, IETF etc, e. g. XHTML 1.0, HTTP over TCP.
Accessability guidelines are to be taken into account (alt-tags, no reliance on
client side scripting for essential functions)


\section{
 Quality Aims
}

Foremost is security, since this is a web-based service run mostly on a shared
web server. Database integrity, normalization and security for "secret"
snippets should be observed.

\section{
 Global Test Scenarios and Test Cases
}


\begin{itemize} 
\item 
Pasting a snippet
\item 
testing the URL
(with or without password authentication)
\item 
Comments
\item 
Deletions
\end{itemize} 

\section{
 Development Environment
}

In order to develop a sustainable project, Open Source is to be used
throughout the published project code base, which includes,
but is not limited to, the web server it ist to be deployed on,
scripting language and SQL database.

\section{
 Additions
}

\begin{itemize} 
\item 
Optional: modify the classification of a snippet
\item 
Not intended for initial rollout: user administration (currently
password only auth)
\end{itemize} 

\end{document}
