/hslynk-open-source

An open source health and human services app platform and data warehouse. Chat with us at: https://gitter.im/hslynk/Lobby . Documentation, wiki, and issue tracker is at: https://github.com/servinglynk/hslynk-open-source-docs . Coordinated Services code is at: https://github.com/hserv/ . All APIs are at https://github.com/hmis-api and hosted at https://docs.hslynk.com. Email listserv is at: https://groups.google.com/a/hslynk.com/forum/#!forum/community

Primary LanguageJavaMozilla Public License 2.0MPL-2.0

HSLynk is a human services platform developed by ServingLynk, Inc. in conjunction with a community of third-party developers and users. Pay-per-use hosting is offered at http://hslynk.com. The docs, wiki, and issue tracker are all located at: https://github.com/servinglynk/hslynk-open-source-docs/wiki . API documentation is at http://docs.hslynk.com.

HSLynk Human Services Data Warehouse

All subdirectories in this repository contain HSLynk microservice code. Our issue tracker and wiki is in a separate repo (https://github.com/servinglynk/hslynk-open-source-docs), to keep the code repo lean.

Prerequisite

How to Run on local machine

Make a local copy database.properties with the below config in /base-model/src/main/resources

app.jndi.name=jdbc/multischema
db.driver=org.postgresql.Driver

db.url=jdbc:postgresql://localhost:POSTGRES_PORT/hmis
db.username=postgres
db.password=


hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.show_sql=true
entitymanager.packages.to.scan=com.servinglynk.hmis.warehouse.entity
hibernate.default.schema=base
# change this indexing location value to point to your local system path (the value below is setup for the server)
solr.search.indexing.location=/usr/share/hmisindexing
db.initsize=10
db.maxactive=100
db.minidle=20
db.maxidle=20
db.maxwait=60000
#Also adding some more properties
git clone https://github.com/servinglynk/hslynk-open-source.git
cd hslynk-open-source
mvn clean install -DskipTests

Note: if you wish to run the unit tests, remove "-DskipTests" from the mvn command above,

Deploy instructions

Tomcat is used to deploy this app.

First time steps

  • Create database:
Open Eclipse and navigate to
Base Schema
/base-model/build.xml
 replace <pathelement location="/Users/sdolia/.m2/repository/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>
 to wherever you have <pathelement location="MAVEN_HOME/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>

run setupDB
    MasterData
    SSN_decrypt

v2014   (You need to run this if you plan to load data in the 2014 schema)
 /hmis-model-v2014/build.xml
  replace <pathelement location="/Users/sdolia/.m2/repository/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>
 to wherever you have <pathelement location="MAVEN_HOME/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>

run setupDB2014

v2015   (You need to run this if you plan to load data in the 2015 schema)
 /hmis-model-v2015/build.xml
  replace <pathelement location="/Users/sdolia/.m2/repository/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>
 to wherever you have <pathelement location="MAVEN_HOME/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>



run setupDB2015

v2016  (You need to run this if you plan to load data in the 2016 schema)
 /hmis-model-v2016/build.xml
  replace <pathelement location="/Users/sdolia/.m2/repository/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>
 to wherever you have <pathelement location="MAVEN_HOME/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>

run setupDB2016

v2017 (You need to run this if you plan to load data in the 2017 schema)
 /hmis-model-v2017/build.xml
  replace <pathelement location="/Users/sdolia/.m2/repository/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>
 to wherever you have <pathelement location="MAVEN_HOME/org/postgresql/postgresql/9.3-1101-jdbc41/postgresql-9.3-1101-jdbc41.jar"/>

run setupDB2017

Git Eclipse Maven Howto: Below is an example showing how to import Maven projects from the GitHub

In this example:
Git repository:https://github.com/hserv
Project: coordinated-entry
Sub project


Open Eclipse
File => Import
Git => Projects from Git => Next
	HiLight Clone URI => Next	
	
	URI:https://github.com/hserv/coordinated-entry
	Host;github.com
	Repository Path:/hserv/coordinated-entry
	
	Connection
	Protocol https
	
	Authentication 
	User:
	Password:
	
	=> Next
	
	Select survey_global_project
	->Next
	
	Local Destination
	
	Directory
	c:/Users/xxxx/git/coordinated-entry
	
	
Select import Wizard
	Click Maven 
	HiLight Existing Maven Projects
	=> Next
		
	Root Directory
	Browse to c:/Users/xxxx/git/coordinated-entry
	Check Project(s) to import from the list of projects (survey-api)
		=> Finish
		
	Projects have been imported and show in the Package Explorer window
	
	HiLight survey-api
	Right Click 
		HiLight Run As
			Maven install

Deploy steps

  • Open server.xml in your tomcat and add the below line.
  • Deploy microservices you want in eclipse or any IDE.

Project Description

  • admin :
    Admin UI application for admin related activity for HSLynk.
  • authorization-service :
    Authorization service is a microservice which takes care of authentication and authorization and is a means to acquire authentication token whichn will be required to call other microservices.
  • base-model :
    Base model is project which points to the base postgres schema.
  • base-serialize :
    Base serialize contains pojos to serialize/de-serialize apis from the base base schema.
  • user-service :
    Microservice containing apis providing hslynk user,projects, organization, roles specific information.
  • base-service :
    Base service is a common service layer across all the ces, global, and hmis version specific schema and also contains service layer for the base service schema.
  • hmis-chronichomeless-v2014: Background process to calculate Chronic homelessness in the 2014 schema.
  • client-dedup :
    Microservice to determine dedup client id from OPEN EMPI.
  • client-deidentify :
    Standalone java project to de-identify (remove) client specific information from the source file. Client information like First Name, Last Name, DOB, SSN.
  • hmis-clientapi-v2014 :
    Microservice which has apis against the 2014 schema (HUD Version 4.0.1)
  • hmis-clientapi-v2015 :
    Microservice which has apis against the 2015 schema (HUD Version 4.1.1)
  • hmis-clientapi-v2016m :
    Microservice which has apis against the 2016 schema (HUD Version 5.1)
  • clientapi-v2017 :
    Microservice which has apis against the 2017 schema (HUD Version 6.1)
  • core-client :
    Common project across all the projects to communicate between microservices.
  • core-common :
    Common library across all the projects containing basic utils and classes.
  • developer-service :
    Microservice which contains apis to provision trusted app, developer company, developer service.
  • global-household :
    Microservice containing apis related to global household.
  • globalapi :
    Microservice containing apis related to global entitites.
  • hmis-hud-reports :
    Project which calculates/generates HUD APR reports.
  • hmis-load-processor-v2014 :
    Processes uploaded files agains the 2014 schema.
  • hmis-load-processor-v2015 :
    Processes uploaded files agains the 2015 schema.
  • hmis-load-processor-v2016 :
    Processes uploaded files agains the 2016 schema.
  • hmis-load-processor-v2017 :
    Processes uploaded files agains the 2016 schema.
  • hmis-model-v2014 :
    Java library containing Hibernate entities related to the 2014 data model.
  • hmis-model-v2015 :
    Java library containing Hibernate entities related to the 2015 data model.
  • hmis-model-v2016 :
    Java library containing Hibernate entities related to the 2016 data model.
  • hmis-model-v2017 :
    Java library containing Hibernate entities related to the 2017 data model.
  • hmis-serialize-v2014 :
    Java library containing pojos to serialize/de-serialize apis related to the 2014 database schema. HUD version 4.0.1.
  • hmis-serialize-v2015 :
    Java library containing pojos to serialize/de-serialize apis related to the 2015 database schema. HUD version 4.1.1.
  • hmis-serialize-v2016 :
    Java library containing pojos to serialize/de-serialize apis related to the 2016 database schema. HUD version 5.1.
  • hmis-serialize-v2017 :
    Java library containing pojos to serialize/de-serialize apis related to the 2017 database schema. HUD version 6.1.
  • hmis-service-v2014 :
    Java library containing spring service layer classes for 2014 apis and data model.
  • hmis-service-v2015 :
    Java library containing spring service layer classes for 2015 apis and data model.
  • hmis-service-2016 :
    Java library containing spring service layer classes for 2016 apis and data model.
  • hmis-service-v2017 :
    Java library containing spring service layer classes for 2017 apis and data model.
  • s3-client :
    Java library containing code to connect to Amazon S3 for HSlynk.
  • upload-service :
    Microservice to upload xml,zip or .7z files and to know the fetch the bulk uploads by status.
  • notification-core :
    Java library to send email notification for functionalities like welcome email etc.
  • notification-service :
    Microservice which uses hmis-notification-core to send notifications.
  • report-core :
    Java library containing core report functionality.
  • report-service :
    Microservice which would be used to request a report for users.
  • sync-general :
    Sync process to sync data from postgres CES schema to HBASE.
  • sync-years :
    Sync process to sync data from postgres global, CES, HMIS version specific schemas to HBASE.