Skip to content
Source and build tools for the Gigantum Client
Python JavaScript CSS Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci #824: Dataset multipart upload support (#873) Jul 1, 2019
.github Updated PR template Jan 11, 2019
docs #876: Fix issue when downloading files from a local-only linked Datas… Jul 1, 2019
gtm Updated CUDA required versions for 10.1, comments (#907) Jul 16, 2019
packages #941: Fix issue where chunked uploads occasionally corrupt files (#942) Jul 20, 2019
resources Fix worker config for demo container and user setting (#922) Jul 16, 2019
testing quick fix so that selenium can detect the sync button regardless of i… Jul 3, 2019
ui #941: Fix issue where chunked uploads occasionally corrupt files (#942) Jul 20, 2019
.codecov.yml Does this work now..? Oct 12, 2018
.dockerignore Cleanup dev, client builds, CI, and code coverage (#58) Sep 26, 2018
.fossa.yml Merge integration to master for v0.10.3 (#384) Jan 3, 2019
.gitignore Issue #829 - Import gigantum testing (#842) Jun 27, 2019
CODE_OF_CONDUCT.md Add UI component to repo Sep 11, 2018
CONTRIBUTING.md #876: Fix issue when downloading files from a local-only linked Datas… Jul 1, 2019
LICENSE
README.md Small update to README instructions to use sub-shell (#880) Jul 5, 2019
yarn.lock Merge integration to master for v0.10.3 (#384) Jan 3, 2019

README.md

Gigantum Banner

Home · Demo · Docs · Twitter · Community & Support · Feedback

CircleCI codecov FOSSA Status

The Gigantum Client is a web application to manage the creation and sharing of data science projects. It is run locally and is delivered via a Docker container. The Client is the core component of a larger ecosystem of tools and services, including:

  • Gigantum Cloud - A public repository for storage and sharing of Projects
  • Gigantum Desktop - A desktop app to install and launch the Client
  • Gigantum CLI - A simple command line tool to install and launch the Client

Installation Quickstart

Gigantum is pip-installable, note that Docker needs to be installed (See instructions below). Once installed, just open your browser to http://localhost:10000!

pip install gigantum
gigantum install && gigantum start

Gigantum can also be delivered as a convenient desktop application, available on our Downloads page.

Build and Run Gigantum from Source

1) Install Docker

Developing the Gigantum Client requires that you have Docker installed locally. Visit the Gigantum user docs for instructions if needed.

Note, Docker must be running to build/run/test the Client.

2) Clone gigantum-client

git clone git@github.com:gigantum/gigantum-client.git
cd gigantum-client
git submodule update --init --recursive

To get started, clone the gigantum-client repository locally. If you plan to contribute, be sure to create a fork first so you can easily create a PR.

The integration branch is the current "working" branch with the latest functional changes that have yet to be released as stable. The master branch is the last version released as stable (i.e. what you get when you install the Gigantum Desktop app)

3) Create virtual environment

python -m venv gtm-env
source gtm-env/bin/activate
( cd gtm && pip install -e . )

gtm is a command line tool to help build and configure the Client. This is a Python 3 application, so you must have Python 3 installed. For detailed instruction see gtm/README.md.

The command gtm is now available. Run gtm -h to see available commands.

4) Configure your development environment

gtm dev setup

gtm must be configured before use. This will ask a few questions and write configuration data to disk for future use.

"Backend" development mode is a configuration primarily used when working on the API. It configures the development container so that when started, the UI is served but the API does not start automatically.

"Frontend" development mode is a configuration primarily used when working on the Javascript UI. It configures the development container so that the API starts automatically, but the UI bundle is not served. This lets you run the Node server locally (on your host) so hot-loading and other dev features work well.

5) Build application client container and start working

gtm dev -v build

Once complete, you'll have a container available for use either via your terminal or from PyCharm.

6) Starting and stopping the gigantum client from terminal

gtm dev start

In a new console session, enter the container and kick off the application:

gtm dev attach
/opt/setup.sh
python3 service.py

Open your web browser to http://localhost:10000 to access the application.

When finished, run:

gtm dev stop

7) Starting and stopping the gigantum client from PyCharm

See Pycharm dev notes for more details on how to set up Pycharm to use the development container

Users

Installing the Client

If you are simply interested in using the Gigantum Client, please follow the download instructions at gigantum.com. For most users, installing then Desktop app is the recommended way of getting the Client.

Try It Out

If you want to try out Gigantum before installing, you can use the online demo at https://try.gigantum.com.

This demo will stop any Project container that runs longer than 1 hr and remove your work after ~1 day.

More Information

For more information visit gigantum.com and check out the user docs at docs.gigantum.com.

Development

Overview of Monorepo Structure

gigantum-client is organized as a monorepo, which means it contains multiple packages. While this has a few drawbacks (e.g. larger repo, code possibly looks more intimidating, can't pip/npm install from Github), it has lots of benefits. By bundling all of the components and tooling into a single repository, it makes it easier to develop, build, and release the Gigantum Client. It also provides a single place to report issues, makes it easier to coordinate complex changes across components, and makes testing easier. Finally, by maintaining parts of the code base as independent, but related packages, it makes it easier re-use code in different parts of the platform.

This may seem odd, but lots of open source tools do it. Check out React, Meteor, Ember, Babel, and nteract for example.

Due to the added complexity of managing multiple packages in a single repository, gigantum-client includes a developer tool called gtm. This tool manages building, testing, and deploying the Gigantum Client in several different configurations. Refer to gtm README for more details.

The repo is organized as follows:

  • docs/: Additional documentation and instructions for developers (in progress and possibly out of date)
  • gtm/: A python package containing the developer tool gtm
  • packages/confhttpproxy: A python package for interfacing with the configurable proxy currently used by the Client
  • packages/gtmapi: A python package containing the Client's GraphQL API.
  • packages/gtmcore: A python package with many subpackages that make up the "core" library used by the Client. This package will be broken up in the future into more granular, related packages.
  • resources/client: Files and configuration data required for building the "production" configured container
  • resources/developer: Files and configuration data required for building the "developer" configured container
  • resources/docker: Dockerfiles for building the Client container
  • ui: The javascript frontend and associated build scripts and configuration

Contributing

You can view contributors by visiting the contributors page on GitHub.

If you want to contribute to the Gigantum Client, the best place to start is the contributing guide.

This project follows the Contributor Code of Conduct. By participating, you are expected to follow this code. Please report unacceptable behavior to conduct@gigantum.com.

License

The Gigantum Client is released under an MIT license

FOSSA Status

You can’t perform that action at this time.