{"id":29702579,"url":"https://github.com/devgateway/gtp","last_synced_at":"2025-07-23T12:39:42.061Z","repository":{"id":39929403,"uuid":"249455035","full_name":"devgateway/gtp","owner":"devgateway","description":"AD3 Senegal ANACIM","archived":false,"fork":false,"pushed_at":"2023-06-14T22:44:52.000Z","size":28969,"stargazers_count":0,"open_issues_count":10,"forks_count":1,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2024-04-15T15:31:33.898Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devgateway.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-23T14:34:26.000Z","updated_at":"2022-02-01T09:40:26.000Z","dependencies_parsed_at":"2022-08-24T18:52:08.613Z","dependency_job_id":null,"html_url":"https://github.com/devgateway/gtp","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/devgateway/gtp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgateway%2Fgtp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgateway%2Fgtp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgateway%2Fgtp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgateway%2Fgtp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devgateway","download_url":"https://codeload.github.com/devgateway/gtp/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgateway%2Fgtp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266680690,"owners_count":23967795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-23T12:39:41.330Z","updated_at":"2025-07-23T12:39:42.049Z","avatar_url":"https://github.com/devgateway.png","language":"JavaScript","readme":"![ANACIM logo](./ui20/public/logo-anacim-small-optimized.png)\n# GTP Platform (AD3 Senegal ANACIM)\n\n[![Build Status](https://travis-ci.com/devgateway/gtp.svg?branch=develop)](https://travis-ci.com/devgateway/gtp)\n[![GitHub license](https://img.shields.io/github/license/devgateway/gtp)](https://github.com/devgateway/gtp/blob/master/LICENSE)\n\nThis project aims to provide technological support for GTP group (Groupe de Travail Pluridisciplinaire) lead by the National Civil Aviation and Meteorology Authority (ANACIM).\nThis group aims to contribute to early warning for food security by providing comprehensive information on the agricultural season.\n\nGTP meets every 10d to share past data about water resources situation, market \u0026 agriculature, livestock and other. \nThis application provides means to enter or upload data set securely\nand visualize it under public facing platform. \n\nThe project is a [DG Toolkit](https://github.com/devgateway/dg-toolkit) fork, with a custom ui20 module. Check DG Toolkit\nfor its general infrastructure reused in GTP.\n\n# Modules\n\nEach module can be started independently of the rest. All modules are based on [Spring Boot](http://projects.spring.io/spring-boot/) templates. Modules currently present:\n\n- [persistence](https://github.com/devgateway/dg-toolkit/tree/master/persistence) - this is a module responsible with [JPA 2.0](https://en.wikipedia.org/wiki/Java_Persistence_API) data persistence. It is also provides [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS) services on top of the existing entities.\n\n- [web](https://github.com/devgateway/dg-toolkit/tree/master/web) - this module provides REST endpoints for the services needed, as well as basic security. It depends on the **persistence** module.\n\n- [forms](https://github.com/devgateway/dg-toolkit/tree/master/forms) - this module provides admin pages\n where system, users, data forms and others are configure.  It is built with help of the DG Toolkit toolbox of forms, pages, components and other over the entities defined in the persistence module. It uses [Apache Wicket](http://wicket.apache.org/) as the backend.\n\n- [ui20](https://github.com/devgateway/dg-toolkit/tree/master/ui20) - this module provides public facing pages with visualizations. It was created from [ReactApp](https://reactjs.org/docs/create-a-new-react-app.html)\nand uses [React](https://reactjs.org/tutorial/tutorial.html) 16,\nwith [Redux](https://react-redux.js.org/) store, [React-Intl](https://formatjs.io/docs/react-intl/),\n[Semantic UI](https://react.semantic-ui.com/), [Nivo](https://nivo.rocks/) and other packages. It works in conjunction with the **web** module as the back-end.\nThe Maven build integration is assured by [frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin) which invokes [npm](https://www.npmjs.com/) and [webpack](https://webpack.github.io/). The UI module can be used by both UI developers, with no need of knowledge or Java/Maven local setup and by the back-end developers, with no need to have [node](https://nodejs.org/).\n\n# Building\n\nAs prerequisites, we need Java 8 and Maven 3.3.x.\nIn order to build the project, invoke:\n\n```\nmvn install\n```\n\ninside the root project folder.\n\n# Installation\n\nSee [Installation Guide](./installation.md) for more details.\n\n# Development and Debugging \n\nYou can import GTP as a Maven project inside your favorite IDE, it should work in IDEA/STS/Eclipse but you will need Maven 3.3.x.\n\nFollow [Gitflow workflow](./gitflow.md) to implement application changes.\n\n## Debugging in STS\n\nSince all the modules are Spring Boot, debugging in STS is really easy. In Spring Boot 1.3 and later there is something called [spring-boot-devtools](https://spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3).\nThis dependency is already included in the pom.xml of the modules, uncomment it if you plan to use it. If you do, then in STS you can do Debug As-\u003eSpring DevTools Client.\n\nIf you have JRebel license, then don't use spring-boot-devtools. Best is to start the modules by invokingn Debug As-\u003eSpring Boot App\n\n## Debugging fat jars\n\n[Fat jars](http://docs.spring.io/spring-boot/docs/current/reference/html/howto-build.html) are the way to go when it comes to java micro-services these days. While the pre-built maven project can be easily debugged as described above, a already packaged jar requires remote debugging. You can start the fat jar with remote debugging parameters by invoking:\n\n`java -Xverify:none -noverify -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar fat.jar`\n\n... And then for example in STS you can add a new Debug Configuration-\u003eRemote Java Application and specify localhost and port 5005.\n\n## Running GTP\n\nGTP is [DG-toolkit](https://github.com/devgateway/dg-toolkit) based, that is a package of several modules, among which forms and web are runnable. See the [forms](https://github.com/devgateway/dg-toolkit/tree/master/forms) and/or the [web](https://github.com/devgateway/dg-toolkit/tree/master/web) modules documentation for starting the project.\nUI20 module can also run independently with `npm start` command under ui20 root.\n\n### Use GTP as a Docker image\n\nWe use the recommended layout and configuration as described in the official documentation [by spring boot](https://spring.io/guides/gs/spring-boot-docker/)\n\nTo create the image:\n\n```\nmvn install\ncd forms\nmvn docker:build\n```\n\nThis will build the image and automatically add to your local docker daemon.\nAfter this, by running `docker images` you should be able to see the new image added.\n\n```\n$ docker images\nREPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE\ndevgateway/toolkit/forms     latest              86129946e668        About a minute ago   435.9 MB\nfrolvlad/alpine-oraclejdk8   slim                00d8610f052e        2 weeks ago          166.6 MB\n```\n\nThe image can be started with\n\n```\n$docker run -p 8090:8090 -t devgateway/toolkit/forms\n```\n\nThat's it, congrats!\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgateway%2Fgtp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevgateway%2Fgtp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgateway%2Fgtp/lists"}