Software Tools

Introduction

The establishment of an approved software list is an important contributor to project success, offering standardized tools that foster an integrated environment and seamless workflows across stakeholders. This list of tools — divided into various categories — proposes standard software for the FEWS NET project.

Select a category to view standard software the Hub currently uses.

Have a recommendation to add?
Submit it in the document below. 

Recommended Software

Office Software 

Google Workspace: This all-in-one suite is our preferred choice for office productivity software. The suite includes Google Docs for creating and editing text documents, Google Sheets for handling spreadsheets, and Google Slides for presentations. All these tools allow real-time collaboration, making them perfect for team projects. Google Workspace also includes Google Chat and Google Meet for communication, Gmail for email services, and Google Calendar for scheduling and time management. Google Sites is used to create a simple intranet, enabling easy sharing and collaboration within the organization. Major strengths of Google Workspace are interoperability, which means that all its tools work together seamlessly, improving productivity and efficiency, and collaborative editing, ensuring that all the stakeholders in the project (including USAID) can contribute to documents without the inefficiencies introduced by sequential editing using “track changes”. Shared templates and applications for office documents make it easier to achieve consistent branding across all stakeholders. Google Workspace is the standard for USAID.

Adobe Creative Cloud: Adobe Creative Cloud provides a comprehensive suite of applications and services for video, design, photography, and web. Products generated by Adobe Creative Cloud can directly support FEWS NET’s documentation, training, and communications activities with a consistent User interface and integrated tools. 

Collaboration and Project Management

Jira: Developed by Atlassian, Jira is a project management tool used for issue tracking and project management. Initially designed for software development, Jira's adaptability allows it to be customized to fit a wide variety of task tracking requirements, making it useful across all stakeholders. Its workflows, which can be customized to mimic a team's process, and integration capabilities with other tools like Confluence, GitHub, and various others, extend Jira's utility as a comprehensive solution for project management. Using a single task tracking tool across all stakeholders provides transparency of cross-stakeholder dependencies and enables users with appropriate Permissions to have visibility across all work including rolling up work plans.

Confluence: This content collaboration tool is primarily used for system and process documentation. Confluence facilitates knowledge sharing across the organization, and is also tightly integrated with Jira, making it an invaluable tool for collaboration and project management, although licensing costs for private content can make it expensive for project-wide but private content.

Software Development — Frameworks and Applications

Django: A Python-based free and open-source web framework, Django is our chosen tool for web development. Its "batteries-included" philosophy means it comes with most of the functionalities required for web development, reducing the need for third-party plugins. Django promotes rapid development and clean, pragmatic design, making it a robust and versatile tool for our web application needs. It has a broad ecosystem of packages for adding additional functionality when required and because it is written in Python it eases integration and deployment of Python-based analytic tools. The FEWS NET Data Warehouse (FDW) is written in Django.

Drupal: Drupal, an open-source content management system, offers a powerful platform for creating websites, while its robust community provides constant updates and security patches. It powers the main fews.net website.

React and Ant Design (Antd): React, a JavaScript library for building user interfaces, is our chosen tool for front-end development. It is used in combination with Ant Design, a UI design language that provides a set of high-quality React components. This combination allows for the creation of modern, interactive user interfaces that are efficient and user-friendly.

Software Development — Design and User Interface

Figma: A cloud-based design tool, Figma allows teams to collaborate in real-time. Its extensive design features and easy-to-use interface make it an ideal tool for prototyping and creating engaging user experiences. 

Software Development — Version Control and Deployment

GitHub: We use GitHub for version control, providing a platform for developers to work together and manage changes to projects. It hosts our code repositories and allows for collaboration, code review, and project management. GitHub Actions are also used to automate software workflows.

Docker and AWS: Software deployment is managed through Docker containers within the Amazon Web Services (AWS) Virtual Private Cloud (VPC). Docker provides lightweight containers to run services while AWS provides the scalable infrastructure, providing a combination that ensures our deployments are reliable, scalable, and secure.

Software Development — Single Sign-On

OAuth2: We use OAuth2 for single sign-on, providing a secure and straightforward way for users to log in to our systems. This is implemented against the FDW User directory, ensuring we can control user access even for those without an email address in the fews.net Domain.

Web Applications

KoBo Toolbox: KoBo Toolbox is a suite of tools for field Data Collection. It offers comprehensive and robust functionality for designing and conducting surveys, managing data, and analyzing the results. It is based on Django, and so is cost effective to support and enhance because it requires the same software development skills as the FDW.

CKAN: CKAN is a powerful data management system that provides facilities to store, share, and publish data. It promotes data-driven projects by providing an easy to use platform that encourages the accessibility and reusability of data. FEWS NET uses CKAN to publish curated Datasets from FDW for public access from the fews.net and HDX websites. It is also used to store one-off Datasets that do not benefit from FDW’s time series approach.

Moodle: Moodle is an open-source learning platform designed to provide educators, administrators, and learners with a robust, secure, and integrated system to create personalized learning environments. It offers a range of features, from content management and reporting to collaborative tools, making it a comprehensive solution for our online training needs. Articulate Storyline 360 is used to create interactive courses. It offers a user-friendly interface and a wide array of features, making it ideal for designing engaging e-learning content.

Data Analysis and Visualization 

Python (including Pandas, Plotly, Plotly Dash, Jupyter Notebooks): Python provides the foundation for our data analysis strategy. It has a comprehensive data science ecosystem while also providing excellent support for web application development and systems integration. This makes it easier to operationalize analytic tools developed using Python than those developed using other analytic environments such as R or Stata. The Python data science ecosystem offers a comprehensive environment for data manipulation (Pandas), creating interactive visualizations (Plotly), and building analytical web applications and dashboards (Plotly Dash). A wide range of additional libraries are available to support statistical analysis and modeling, including machine learning and natural language processing. Jupyter can be used for one-off analysis and for sharing live code, equations, and visualizations. A wide range of additional libraries are available for We enforce code style consistency using Black and adhere to PEP8 coding standards, linting with Flake8 or Ruff with a standard configuration.

Highcharts and MapboxGL: For advanced Visualizations, we use Highcharts and MapboxGL. Highcharts supports a broad range of chart types with integrated accessibility features, while MapboxGL enables interactive, customizable maps. Both tools offer robust features and are known for their high performance.

Luigi: Luigi is an open-source Python module that assists in the construction of complex data pipelines. It handles dependency resolution, workflow management, visualization, handling failures, command line integration, and more.

QGIS: A powerful open-source geographic information system (GIS), QGIS allows for the creation, editing, visualizing, analyzing, and publishing of geospatial information. With its wide range of tools, QGIS allows us to manage and analyze geographical data, including the integration of various geospatial data formats, advanced cartography, geoprocessing tools, and database management.