LSFLK / GIG

General Information Graph

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GIG - General Information Graph

General Information Graph (GIG) is a large scale information storage, querying and processing system for public information. With GIG, we aim to improve the quality of information which is publicly available on a multitude of social, political, and economic areas, and make it easier and more efficient to access, so it can be put to gainful use.

Project Structure

The directory structure of GIG:

conf/                       Configuration directory
    app.conf                GIG server configuration file
    routes                  Routes definition file

app/                        App sources
    init.go                 Interceptor registration
    cache/                  Cache Directory
    controllers/            App controllers
        api/                Inbound/Outbound API controllers
    data/                   Data Files for importing             
    models/                 Model classes
    repositories            Model Repositories
    storages/               Storage Handlers
    utilities/
        config/             Configuration Handler Class
        crawlers/           Data Crawler Classes
        entity_handlers/    Entity Management Classes
        importers/          Data Importer Classes
        normalizers/        Normalizer Classes
        parsers/            Source Parser Classes
        request_handlers/   Request Handler Classes
    views/                  Templates directory            

messages/                   Message files

public/                     Public static assets
    css/                    CSS files
    js/                     Javascript files
    images/                 Image files

tests/                      Test suites

GIG Eco-System:

GIG High Level Architecture

Get Started

Deployment Requirements

  • Golang
  • Revel
  • Mongo Server for Database Hosting
  • Docker for Deploying Minio Server
  • Minio Server for File Hosting
  • Python for NER Recognition Server
  • Google Custom Search API

Server Setup using Kubernetes (Optional)

To set up the GIG runtime environment and dependency servers using Kubernetes, refer to Server Setup using Kubernetes.

First time run:

Configure mongo.path at conf/app.conf using the mongodb and minio IPs. Refer How to Configure the Server

[dev]
...
mongo.path = mongodb://developer:password@localhost:27017/gig
...
minio.endpoint = localhost:9001

Run Server:

revel run

Test Command:

revel test ""

Build Command:

revel build "" build -m prod
./build/run.sh

Help

About

General Information Graph

License:Apache License 2.0


Languages

Language:Go 97.7%Language:HTML 1.6%Language:Dockerfile 0.4%Language:Shell 0.3%