Coder Social home page Coder Social logo

codewdhruv / flint.cloud Goto Github PK

View Code? Open in Web Editor NEW

This project forked from moja-global/flint.cloud

0.0 1.0 0.0 1.2 MB

The project aims to build a continuous deployment pipeline to offer FLINT as a SaaS over cloud. The project also aims to simplify the process of installation by supporting a single command or step installation process.

License: Mozilla Public License 2.0

Dockerfile 4.79% Python 84.19% HCL 11.01%

flint.cloud's Introduction

FLINT.Cloud

The project aims to build a continuous deployment pipeline to offer FLINT as a SaaS over cloud. The project also aims to simplify the process of installation by supporting a single command or step installation process.


Table of Contents
  1. Technology Stack
  2. Layered Architecture Setup on Google Cloud
  3. FAQ and Other Questions
  4. Contributors
  5. Maintainers Reviewers Ambassadors Coaches

Technology Stack

Production Setup - Layered Architecture Setup on Google Cloud

Deploying

  1. Create a service account with project owner permissions in your project. This is used by Terraform to provision all the necessary resources.
  2. Copy main.tf from the layered directory of this repository to your Cloud Console machine.
  3. In main.tf, change the project variable to your project ID. Change any other variables if necessary.
  4. Download the key for the service account created in step 1 (in JSON format) to your project's Cloud Console machine. Rename it as service_account.json.
  5. Run terraform apply. After this command finishes, it should output the URL to FLINT Cloud (ingress).

Disabling

  1. In the same directory as where main.tf is present, run terraform destroy. In case this fails, simply run it again.

Local Setup

These steps can be followed to locally setup the API endpoints. This is independent of the above mentioned production setup.

Flask example REST API Setup

In order to run the REST API, navigate to the local/rest_api_flint.example folder. Follow these steps: -

  1. docker build -t flint-api .
  2. docker run --rm -p 8080:8080 flint-api

Currently the REST API has the following endpoints available for access:-

Endpoint Functionality
\help\all Produces a help message with information on all options for moja.CLI.
\help\arg Produces a help message with information on option arg for moja.CLI.
\version Outputs the version number of moja.CLI.
\point Runs point example and outputs point_example.csv as an attachment to be downloaded. Parameters (multipart-form data) file for point_example can be passed to override the default configurations.
\rothc Runs rothc example and outputs point_rothc_example.csv as an attachment to be downloaded. Parameters (multipart-form data) file for rothc_example can be passed to override the default configurations.

This REST API is built using the flask-restful package and has been containerized using Docker.

Flask GCBM REST API Setup

In order to run the Flask GCBM API, navigate to the local/rest_api_gcbm please follow the following steps: -

  1. docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .
  2. docker run -v path to the unzipped GCBM_Demo_Run.zip folder:/gcbm_files --rm -p 8080:8080 gcbm-api

For instruction 2, unzip the folder GCBM_Demo_Run.zip present at the root of the directory On unzipping, a folder layers is created, make note of the path of this folder We have mounted the layers folder as gcbm_files onto our container.

Example: Assume the path to the unzipped folder is /home/layers, instruction 2 will be :

  1. docker run -v /home/layers:/gcbm_files --rm -p 8080:8080 gcbm-api

Currently the REST API has the following endpoints available for access:-

Endpoint Functionality
\help\all Produces a help message with information on all options for moja.CLI.
\help\arg Produces a help message with information on option arg for moja.CLI.
\version Outputs the version number of moja.CLI.
\gcbm Runs flint-gcbm and outputs some files in the output directory along with the output db.

Parameters (multipart-form data) file for gcbm_config and input_db for input sqlite db can be passed to override the default configurations.

This REST API is built using the flask-restful package and has been containerized using Docker.

How to Get Involved?

Feel free to join our Slack community and get to know everyone.

If you would like to volunteer as a mentor, or for any other questions, please contact [email protected]. We'd love to have you involved.

Contributing

To contribute to FLINT.Cloud:

Go through our contributing guidelines over here.

FAQ and Other Questions

Contributors

Thanks goes to these wonderful people (emoji key):

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

moja global
moja global

๐Ÿ“†

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

License

This project is released under the Mozilla Public License Version 2.0.

flint.cloud's People

Contributors

arnav-t avatar tlazypanda avatar harshcasper avatar shubhamkarande13 avatar iamrajiv avatar aornugent avatar padmajabhol avatar asmijafar20 avatar mfellows avatar namyalg avatar shloka-gupta avatar dabjazz avatar nynaalekhya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.