\section{Requirements}
\label{sec:requirements}

\begin{comment}
In 2013, the SPB Portal had more than 600 thousand unique visitors, generating
more than 16 million page views with about 50 million hits. By evaluating only
the main projects, there were more than 15 thousand downloads and 4 thousand
messages exchanged in their forums. These data illustrates the potential of the
SPB Portal, even with several limitations in the past.
\end{comment}

By preparing the evolution project described in this paper, the Brazilian
government promoted 3 events to collect the requirements, in particular from
society point of view: (i) an online form to collect general ideas; (ii) a
face-to-face meeting with society in general; (iii) a workshop to review the
SPB concepts and requirements with IT stakeholders from the Brazilian
government and public organizations.

After these 3 rounds discussing the new SPB platform, the Brazilian government
listed about 145 requirements. The 10 most voted requirements were:
(i) Source code repository with public access;
(ii) Visit community pages without login;
(iii) Distributed version control system;
(iv) Scores of users and developers collaboration;
(v) Search software by features;
(vi) Integration with social networks;
(vii) Repository for future ideas and requirements;
(viii) Friendly URL to access a public software community page;
(ix) User feedback about a public software;
(x) Report of the experience about the use of a public software.

%\begin{figure}[hbt]
%  \centering
%    \includegraphics[width=\linewidth]{figures/technological-requirements.png}
%  \caption{Technological requirements.}
%  \label{fig:requirements}
%\end{figure}


There were other requirements based on the experience of the IT
stakeholders from the Brazilian government and from the Brazilian FLOSS
community (that UnB and USP were representing too in this project). The
new platform would only work properly if there is a unique
authentication to use the provided tools. Additionally, a unified
interface was an important non-functional requirement to have a better
user experience in the new platform.

At the first moment, we desired to release an initial version that could
replace the old SPB portal. For that, the first version should have
features such as:
(i) An organized public software catalog;
(ii) Social network environment (profiles for users, software pages, and community pages);
(iii) Content Management Systems (CMS) features;
(iv) Web-based Git repository manager with wiki and issue tracking features;
(v) Mailing lists and discussion forums;

Other requirements were also planned during the conception phase of the
SPB evolution project, such as an integrated search engine and a
web-based source code static analysis monitor. By analyzing all of these
requirements, we have designed the SPB evolution
project based on existing FLOSS tools. However, the integration of
several existing systems that were already implemented in different
programming languages and frameworks, adding features such as a
centralized authentication, unified interface, and a search engine, as
well as, other back-end features, would require a non-trivial amount of
work.
