Coder Social home page Coder Social logo

arun-babu / iudx-catalogue Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iudx/iudx-catalogue

0.0 1.0 0.0 40.61 MB

An Open Source implementation of India Urban Data Exchange (IUDX) Catalogue Service and Search APIs using Vert.x, an event driven and non-blocking high performance reactive framework, for identifying assets and data resources in Smart Cities.

Java 2.08% Shell 0.16% HTML 14.70% CSS 41.94% JavaScript 41.13%

iudx-catalogue's Introduction

IUDX Catalogue

Build Status

An Open Source implementation of India Urban Data Exchange (IUDX) Catalogue Service and Search APIs using Vert.x, an event driven and non-blocking high performance reactive framework, for identifying assets and data resources in Smart Cities.

Quickstart

  1. Clone the repository
  git clone https://github.com/iudx/iudx-catalogue && cd iudx-catalogue
  1. If your host machine is Ubuntu or Debian based, simply run ./requirements. Otherwise, install the following dependencies manually:
  • docker
  • docker-compose
  1. Start the installation. Do one of the below:

    • Quick Installation

      • Pulls the jars from the latest release for fast installation. Takes ~1 minute to install.
        cd docker
        ./quick_install
      
    • Regular Installation

      • Downloads all maven dependencies compiles the java source files. Takes ~8 minutes to install.
        cd docker
        ./install
      

The catalogue server will be up at https://localhost:8443/

Re-installation and testing

  • To re-install individual components, run
  cd docker
  ./re-install apiserver #To re-install apiserver
  ./re-install mongodb #To re-install mongodb
  • Running tests needs a few steps to be completed first

    • Make sure you get a Class-3 client certificate from https://ca.iudx.org.in/
    • Once a certificate has been obtained, run the create_client_keystore script with the following options
      ./create_client_keystore <certificate.pem> <private_key.pem>
    
    • The above script will create a client keystore file client.jks. Now run
      cd docker
      ./test
    
    • The catalogue will be up as a development server at https://localhost:18443/ and REST assured testing will be performed

A note on dealing with IUDX Certificates

  • To decode IUDX certificates for authorising users, do the following:

    • Obtain a server side certificate for the catalogue server from a well-known CA (eg. letsencrypt).
    • Create a .p12 file from the obtained certificate by following the steps below:
      cp /etc/letsencrypt/live/<domain_name>/fullchain.pem .
      cp /etc/letsencrypt/live/<domain_name>/privkey.pem .
      cat fullchain.pem privkey.pem > combined.pem
      openssl pkcs12 -export -in combined.pem -out my-keystore.p12
    
    • Convert the .p12 file to a JKS file using:
      keytool -importkeystore -srckeystore my-keystore.p12 -srcstoretype pkcs12 -destkeystore my-keystore.jks
    
      keytool -import -trustcacerts -alias iudx-ca -file ca.iudx.org.in.crt -keystore my-keystore.jks
    
    • Run ./apply_changes to effect the changes

Contributors, read this

  • If you have used ./install script to install the catalogue, then first-time compilation takes about 8 minutes. You can monitor this using docker logs -f apiserver. However, if you use the ./quick_install script then the jar files from the latest release are pulled and the catalogue will be up immediately.

Applying code changes and testing

  • Simply run ./apply_changes from the base directory of the repository to effect the new changes

iudx-catalogue's People

Contributors

arun-babu avatar arundprabhu avatar code-akki avatar jishnujayakumar avatar pct960 avatar rnaaz avatar svaderia avatar swaminathanvasanth 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.