Giter Club home page Giter Club logo

semat's Introduction

Build Status CocoaPods

SEMAT - The Essence Kernel Manager

A showcase application to demonstrate capabilities of Apache Isis project by implementing OMG SEMAT Essence Kernel model and running it on Red Hat OpenShift

Live Demo on Red Hat OpenShift

See live demo running on a free OpenShift Online account at http://semat.ofbizian.com or direct URL (may be outdated) http://semat-semat.193b.starter-ca-central-1.openshiftapps.com/

Screenshot

project view project diagram

Application Features

  • Manage multiple projects per tenant
  • Manage project Alpha states
  • Custom Essence Alpha state list per tenancy
  • Custom Essence Checklist items per tenancy
  • Alpha state spider/radar diagram

Apache Isis Features used

  • Automatic Apache Wicket based UI generation from domain model
  • Automatic REST API generation from the same domain model
  • Self Signup/Registration
  • Multi Tenancy
  • LDAP integration
  • Auditing
  • Session logging
  • Internationalization

Build and Run

(option 1) Local: build and run with Maven

mvn clean install
cd webapp
mvn jetty:run

(option 2) Local: build and run with Docker

mvn clean install
docker build --rm -t bibryam/semat .
docker run -p 8080:8080 bibryam/semat

(option 3) Local: build and run with Maven and Docker plugin

mvn clean install
cd webapp
mvn clean install docker:build docker:start -Pdocker

Local login

http://localhost:8080/

user:user - a default tenant user with two example projects and configuration.
admin:admin - admin user with full access but no part of any tenancy.

(option 4) OpenShift Online: Deploy existing Docker image to OpenShift

Create an OpenShift Online account. Notice, even the free tier account is enough to try out the application. Install OpenShift client locally (oc) and login to OpenShift. The following commands will run the latest SEMAT Docker image and expose its URL to outside world.

oc new-project semat
oc new-app bibryam/semat:latest -e CATALINA_OPTS=“-Xmx300m”
oc expose service semat

The process takes some time as it has to download the Docker images and there are not much free resources on a free tier account. Notice also we limit Tomcat heap size in order to run in a Docker container with 512MB memory. After few minutes, you should be able to access your SEMAT instance.

(option 5) OpenShift Online: Deploy to OpenShift from source code

If you do not trust Docker images build by others (you should not!) then you can build your own Docker image as shown above with options 2 and 3 and push it your own docker registry and create the app from it: oc new-app your_name/semat:latest -e CATALINA_OPTS=“-Xmx300m” Alternatively, you could avoid installing and running Docker completly, and have the source code and the docker image build on OpenShift. That is called OpenShift Source-to-Image approach. You can do this from OpenShift UI by using for example "Red Hat JBoss Web Server 3.1 Tomcat 8 1.0" template and pointing to the SEMAT github repo.

Or use the template provided here:

oc create -f semat-openshift-template.json
oc process semat

Using source to image approach allows setting up webhooks, have a Red Hat base image, have jolokia added, memory configuration done, etc.

semat's People

Contributors

bibryam avatar

Watchers

James Cloos avatar  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.