\section{Features}
\label{sec:features}

The new generation of the SPB Portal combines features adapted from existing
collaborative software and features developed by us. The new functions (newly
developed or partially modified) were contributed back to the official
repositories.

As a result, we have a platform that integrates and harmonizes different
features such as social networking, mailing list, version control system,
content management, and source code quality monitoring. Our aim was to develop
functionalities by reusing functionality of collaborative software already
integrated to the platform. In addition, we tried to keep this integration
transparent to end users. We can discuss on the main features according to the
three groups below.

\textbf{Software Project and Software Community.}
%
In the new SPB Portal, each software has a standard set of pages and tools.
Besides accessing support pages (such as FAQ and installation guide) within the
platform, users will be able to download different versions of the software and
find several mechanisms of software development management.

Focusing on the collaborative development, Mailman was integrated to the
platform to allow the dialogue and communication between developers, users and
enthusiasts of a determined software. The software has its own mailing list
whose privacy can be configured by the software community administrators. 

The software has a social interface area (``software community'') where users
can find other users, blogs, summary of recent activities, or any other
relevant community-produced content.  Users logged to the platform can request
membership to different software communities and each community member can
access and edit restricted content. For this purpose, many Noosfero features
related to social networking and content management were integrated to the
portal.

To assist decision-making, the new SPB Portal has acquired assessment and
statistical tools. Now, users will be able to rate the software and make
comments and all information will be avaiable to other users. Moreover, the
software has a section containing  its statistical data, where values are
calculated based on data provided by users and the system.

The role of the administrator is present in the software project and in its
community. The administrator is responsible for moderating content, memberships
and user comments. The administrator is also the one who can make changes in
the software homepage content.

\textbf{Software Catalog and Global Search.}
%
The platform also provides a search tool called Software Catalog, which allows
users to find softwares available in the portal.  In this catalog, we developed
some search options to make the navigation easier, such as filters (by type of
software or category), sorting and score.

To expand the searching scope and cover more types of content, we developed the
global search tool. This tool unifies search mechanisms provided by the
different collaborative software used on the SPB Portal. Any user can find a
public content in the context of social networking, mailing list, and software
repository.

\textbf{Software Development Tools.}
%
Usually, Collaborative Development Environments (CDE) demand a version control
system, trackers, build tools, knowledge centers, and communication tools
\cite{collaboration_tools}. The new SPB Portal also provides tools to encourage
developers to keep the source code and its development activity within the
platform. Any created software has, by default, an associated Git repository
with Wiki pages and issue tracking. These tools are supplied by the integration
of Gitlab into the platform. 

Developers can also evaluate the software source code to measure software
quality. With Mezuro, they can schedule the analysis of the source code and
follow its metric results evolution over time.  Results of each metric analysis
are public, which allows greater transparency between the developer and the
community that uses the software.  Thereby, the maintainers can decide if the
given solution meets the source code quality requirements.

Thus, the SPB Portal became a platform to stimulate the openness of the source
code; dialogue between users and the development team; and also maintenance and
evolution of the software, which provide more transparency in Government
investments regarding to software development.

