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

By preparing the SPB Portal evolution, the Brazilian Government has executed
three steps to collect the requirements. The first step was the collection of
proposals using an online tool called Pligg\footnote{\url{https://pligg.com}}
and the open sharing of them on the Internet.  In this step, the citizens have
written and voted on proposals they were more interested in. At the end, the
Brazilian Government collected about 100 proposals and its initial perspective
was to give to the most voted ones the priority of implementation on the new
SPB Portal.

The second step was two face-to-face meetings that aimed to discuss ideas (not
necessarily based on the previous collected proposals) to improve the SPB
Portal and its environments. On the first day, the participants were divided in
two groups to discuss (i) features and technologies as well as (ii) user
experience and general ideas regarding the SPB Portal. Each group has generated
a ``mind map'' to summarize and to correlate its ideas.  During the second day,
the participants were allocated in three groups to discuss features related to
(i) the process of software evaluation and acceptance in the SPB Portal, (ii)
approaches to share the SPB projects, and (iii) ways to attract universities
and students to collaborate to SPB projects.

The last step was a workshop with some IT representatives of the Federal
Government and public organizations and, again, it was focused on collecting
new proposals to evolve the SPB Portal.

After these unconnected three steps, the Brazilian Government has generated a
list of 145 requirements. To provide a cohesive initial list of requirements,
we have proposed to release the first stable version of the new platform to
replace the old SPB Portal, prioritizing the following features:

\begin{enumerate}
\item An organized public software catalog;
\item Social network environment (profiles for users, software pages, and
      community pages);
\item CMS features;
\item Web-based Git repository manager with Wiki and issue tracking features;
\item Mailing lists and discussion forums.
\end{enumerate}

Moreover, the new SPB Portal would only work properly if there was a unique
authentication to use the provided features. Additionally, a unified interface
was an important non-functional requirement to provide better user experience
on the new platform.

Other requirements were in the wishlist 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.
