Giter Site home page Giter Site logo

jeffeaton / hint Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mrc-ide/hint

0.0 1.0 0.0 43.2 MB

HIV Indicators Tool for district level estimates of HIV epidemic indicators

Kotlin 25.36% JavaScript 0.60% Shell 0.79% Vue 14.58% FreeMarker 0.36% TypeScript 57.43% Dockerfile 0.17% HTML 0.10% SCSS 0.60%

hint's Introduction

HINT - HIV Indicators Tool

Build status codecov

SpringBoot Kotlin web app for interfacing with the Naomi model for joint small-area estimation of HIV prevalence, ART coverage, and HIV incidence via the hintr package

Developing

Requirements:

  • Docker
  • npm
  • openjdk 8
  • coreutils or realpath (Mac users only)
  1. Clone this repo
  2. Run npm install from src/app/static
  3. Run ./scripts/run-development-dependencies.sh to start docker instances of hint-db and hintr and add a test user with username [email protected] and password password.
  4. Run npm run build from src/app/static to compile front-end dependencies.
  5. Run app from your IDE or by cd src && ./gradlew :app:bootRun to serve the app on port 8080

For more information about developing the front-end see src/app/static/README

Testing

Ensure dependencies are running and then execute tests on the command line or through IntelliJ

  1. ./scripts/run-development-dependencies.sh
  2. ./src/gradlew -p src app::test

To run a specific test alone, add --test + the fully qualified class name to the command. For example, the command for running ProjectsControllerTests.kt would be: ./src/gradlew -p src app::test --tests org.imperial.mrc.hint.unit.controllers.ProjectsControllerTests

Database Interface

If the database schema has changed, you can regenerate the database interface code (in /src/databaseInterface) by running ./src/gradlew -p src :generateDatabaseInterface:run while the database container is running.

Versioning

HINT Versions are recorded here. The latest version should match the value of currentHintVersion in src/app/static/src/app/hintVersion.ts

If you make any change to the application which affects its functionality (i.e. anything other than a refactor, or documentation or CI change, you should update the version by adding an entry to NEWS.md and setting currentHintVersion).

Versions should follow the semantic versioning format, so you should update the:

  • MAJOR version when you make incompatible changes (e.g. a change to serialised version state format),
  • MINOR version when you add functionality in a backwards compatible manner, and
  • PATCH version when you make backwards compatible bug fixes.

This may cause relatively frequently conflicts since more than one person is likely to be working on a new version at a time. In this case, you should give your branch its own new version number, rather than rolling your changes into the same version number as changes from another branch.

Distribution

A docker image containing the app is created as part of the BuildKite build. To create such an image locally, run ./buildkite/make-build-env.sh followed by ./buildkite/build.sh. A CLI image is also created as part of the BuildKite build, using ./buildkite/build-cli.sh.

Run docker run -p 8080:8080 --name hint mrcide/hint:branch_name to run a built image. The app will not start until config is provided at /etc/hint/config.properties. This config is added during deployment with hint-deploy

hint's People

Contributors

emmalrussell avatar hillalex avatar nicolas-dolan avatar lekananni avatar r-ash avatar richfitz avatar

Watchers

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