Home

Awesome

FLINT Open-source Library

All Contributors

What is FLINT?

Full Lands Integration Tool (FLINT) is a C++ framework that combines satellite and ground data in a way that meets policy requirements. It is based on more than 20 years of experience in building and operating integrated tools in Australia and Canada. It's an Open-Source Library maintained under moja global, a project under the Linux Foundation.

Why FLINT?

FLINT enables all countries to develop and operate advanced systems. It is a universal platform with a modular structure, allowing countries to attach any kind of models or data to build a country-specific system. The platform handles complex computer science tasks, such as storing and processing large data sets, allowing users to focus on monitoring, reporting, and scenario analysis.

How is FLINT different from earlier integrating tools?

FLINT is using the lessons learned from the first generation of tools to build a new framework that meets current and future needs. Compared with the first-generation tools, the main improvements include:

Getting Started with FLINT

Below are instructions for quick installation.

Note: If you need more detailed information, you can use a step-by-step guide or view the video.

Please provide us with feedback on how to improve these guidelines. You can leave your comment in the version under development.

Development Environment How-To for Windows

These instructions are for building the FLINT on Windows using Visual Studio 2017, or Visual Studio 2019.

Required Installs

CMake

Using vcpkg to install required libraries

A fork of a Vcpkg repository has been created for the FLINT required libraries. To build these libraries you can use the following process:

Install Moja Libraries

It is possible to use the Visual Studio moja solution to install built versions of the Moja libraries. To do this you need to set the CMAKE variable 'CMAKE_INSTALL_PREFIX' to your install path (i.e. "C:/Development/Software/moja").

Make edits to the Visual Studio Solution using CMake

  1. Launch the CMake GUI
  2. In the 'Where to build the binaries' field click “Browse Build…” and select the folder you created above (i.e. C:\Development\moja-global\FLINT\Source\build)`. The 'Where is the source code:' field should update, if not, set it correctly.
  3. You should be able to edit any CMake setting now (i.e. ENABLE flags like ENABLE_TESTS), then click “Configure” – assuming all libraries and required software has been installed you should have no errors. Now click "Generate" and the Solution with adjustments should be ready to load into Visual Studio.

Other Useful Tools

SQLIte Studio

A simple windows SQLite database manager (http://sqlitestudio.pl/) sqlitestudio-3.1.0.zip

TortoiseGit

TortoiseGit

Docker for Ubuntu 18:04

Containers are a simple way to build FLINT and all required dependencies. Examples of how this can be done are provided for Ubuntu 18.04. See the Examples docker directory.

Building the containers

The build has been split into two Dockerfiles, the first to get and build required libraries. The second to get and build the moja FLINT libraries and CLI program.

# working from the examples folder "flint/tree/master/Examples/docker"

# build the base
docker build -f Dockerfile.base.ubuntu.18.04 --build-arg NUM_CPU=4 -t moja/baseimage:ubuntu-18.04 .

# build the flint container
docker build  -f Dockerfile.flint.ubuntu.18.04 --build-arg NUM_CPU=4 --build-arg FLINT_BRANCH=master -t moja/flint:ubuntu-18.04 .

docker build  -f Dockerfile.flint.ubuntu.18.04 --build-arg NUM_CPU=4 --build-arg GITHUB_AT=XXXX --build-arg FLINT_BRANCH=master -t moja/flint:ubuntu-18.04 .

How to use the final container depends on the task. However, the following command will bash into the flint container and allow you to use the CLI program.

# run bash on the flint container
docker run --rm -ti moja/flint:ubuntu-18.04 bash

Once in, you should be able to run the CLI program moja.cli

# run CLI
moja.cli --help

That should respond:

Allowed options:

General options:
  -h [ --help ]          produce a help message
  --help-section arg     produce a help message for a named section
  -v [ --version ]       output the version number

Commandline only options:
  --logging_config arg   path to Moja logging config file
  --config_file arg      path to Moja run config file
  --provider_file arg    path to Moja data provider config file

Configuration file options:
  --config arg           path to Moja project config files
  --config_provider arg  path to Moja project config files for data providers

How to Get Involved?

moja global welcomes a wide range of contributions as explained in Contributing document and in the About moja global Wiki.

FAQ and Other Questions

Contributors

Thanks goes to these wonderful people (emoji key):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore --> <table><tr><td align="center"><a href="https://github.com/mtbdeligt"><img src="https://avatars3.githubusercontent.com/u/16447169?v=4" width="100px;" alt="Rob de Ligt"/><br /><sub><b>Rob de Ligt</b></sub></a><br /><a href="https://github.com/moja-global/FLINT/commits?author=mtbdeligt" title="Documentation">📖</a> <a href="#maintenance-mtbdeligt" title="Maintenance">🚧</a></td><td align="center"><a href="https://github.com/malfrancis"><img src="https://avatars0.githubusercontent.com/u/5935221?v=4" width="100px;" alt="Mal"/><br /><sub><b>Mal</b></sub></a><br /><a href="https://github.com/moja-global/FLINT/commits?author=malfrancis" title="Code">💻</a></td><td align="center"><a href="https://github.com/leitchy"><img src="https://avatars0.githubusercontent.com/u/3417817?v=4" width="100px;" alt="James Leitch"/><br /><sub><b>James Leitch</b></sub></a><br /><a href="https://github.com/moja-global/FLINT/commits?author=leitchy" title="Code">💻</a></td><td align="center"><a href="https://github.com/mfellows"><img src="https://avatars0.githubusercontent.com/u/8548157?v=4" width="100px;" alt="Max Fellows"/><br /><sub><b>Max Fellows</b></sub></a><br /><a href="https://github.com/moja-global/FLINT/commits?author=mfellows" title="Code">💻</a></td></tr></table> <!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the all contributors specification. Contributions of any kind welcome!

Maintainers Reviewers Ambassadors Coaches

The following people are Maintainers, Reviewers, Ambassadors or Coaches.

<table><tr><td align="center"><a href="https://github.com/malfrancis"><img src="https://avatars0.githubusercontent.com/u/5935221?v=4" width="100px;" alt="Mal"/><br /><sub><b>Mal</b></sub></a><br /><a href="https://github.com/moja-global/FLINT/commits?author=malfrancis" title="Code">💻</a></td><td align="center"><a href="https://github.com/leitchy"><img src="https://avatars0.githubusercontent.com/u/3417817?v=4" width="100px;" alt="James Leitch"/><br /><sub><b>James Leitch</b></sub></a><br /><a href="https://github.com/moja-global/FLINT/commits?author=leitchy" title="Code">💻</a></td><td align="center"><a href="https://github.com/mfellows"><img src="https://avatars0.githubusercontent.com/u/8548157?v=4" width="100px;" alt="Max Fellows"/><br /><sub><b>Max Fellows</b></sub></a><br /><a href="https://github.com/moja-global/FLINT/commits?author=mfellows" title="Code">💻</a></td></tr></table>

Maintainers review and accept proposed changes. Reviewers check proposed changes before they go to the Maintainers. Ambassadors are available to provide training related to this repository. Coaches are available to provide information to new contributors to this repository.