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

By preparing the evolution the SPB Portal, the Brazilian Government executed
three steps to collect the requirements. The first step consisted in order to
collect proposals using an online tool called Pligg
\footnote{\url{https://pligg.com}} and share them openly on the Internet. The
citizens were able to write proposals as well as vote on those that most
interested them. At the end of this step, the Brazilian Government collected
about 100 proposals and the initial perspective was to prioritize the most
voted of them to be implemented for the new SPB Portal.

The second step was two open face-to-face meetings that aimed to discuss ideas
(not necessarily based on the proposals collect during the first step) to
improve the SPB Portal and its specific environments. At the first day, the
participants were divided in two groups to discuss (i) features and
technologies as well as (ii) user experience and ideas in general regarding to
SPB Portal. Each group generated a ``mind map'' to summarize and 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) the approaches to share the SPB projects,
and (iii) how to attract universities and students to collaborate to SPB
projects.

The last step was a workshop with IT representatives from a specific group at
the Government and public organizations. One more time, the objective was to
collect proposals to evolute the SPB Portal, but the discussions was not
necessarily related to the ideas provided during the first and second steps.

After these uncoated three steps, the Brazilian government generated a list of
145 requirements. By trying to mitigate the lack of focus from the requirement
list, we propose to release an initial version that would 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 just would work properly if there is a unique
authentication to use the provided features. Additionally, a unified interface
was an important non-functional requirement to have a better user experience in
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.
