{"id":24775691,"url":"https://github.com/inseefr/pearl-jam-back-office","last_synced_at":"2026-02-02T15:20:38.419Z","repository":{"id":38458113,"uuid":"252751224","full_name":"InseeFr/Pearl-Jam-Back-Office","owner":"InseeFr","description":"Back-Office services for Pearl Jam","archived":false,"fork":false,"pushed_at":"2026-01-27T16:30:36.000Z","size":2594,"stargazers_count":1,"open_issues_count":31,"forks_count":9,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-01-28T00:53:16.769Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/InseeFr.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-04-03T14:10:48.000Z","updated_at":"2025-12-16T17:42:46.000Z","dependencies_parsed_at":"2023-12-18T03:25:15.918Z","dependency_job_id":"e0f2eecb-3040-4559-8a75-f2f62bb64e70","html_url":"https://github.com/InseeFr/Pearl-Jam-Back-Office","commit_stats":null,"previous_names":[],"tags_count":144,"template":false,"template_full_name":null,"purl":"pkg:github/InseeFr/Pearl-Jam-Back-Office","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFr%2FPearl-Jam-Back-Office","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFr%2FPearl-Jam-Back-Office/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFr%2FPearl-Jam-Back-Office/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFr%2FPearl-Jam-Back-Office/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InseeFr","download_url":"https://codeload.github.com/InseeFr/Pearl-Jam-Back-Office/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFr%2FPearl-Jam-Back-Office/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29014021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T14:58:54.169Z","status":"ssl_error","status_checked_at":"2026-02-02T14:58:51.285Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-01-29T06:55:19.731Z","updated_at":"2026-02-02T15:20:38.402Z","avatar_url":"https://github.com/InseeFr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Pearl Jam Back-Office\nBack-office services for Pearl Jam  \nREST API for communication between Pearl Jam DB and Pearl Jam UI.\n\n## Requirements\nFor building and running the application you need:\n- [JDK 21](https://jdk.java.net/archive/)\n- Maven 3  \n\n## Install and excute unit tests\nUse the maven clean and maven install \n```shell\nmvn clean install\n```  \n\n## Running the application locally\n```shell\nmvn spring-boot:run\n```  \n\n## Deployment\n### 1. Package the application\n```shell\nmvn clean package\n```  \nThe jar will be generated in `/target` repository\n\n### 2. Launch app with embedded tomcat\n```shell\njava -jar app.jar\n```\n\n### 3. Application Access\nTo access the swagger-ui, use this url : [http://localhost:8080/swagger-ui/index.html](http://localhost:8080/swagger-ui/index.html)\n\n## Docker/Kubernetes\n\nA Dockerfile is present on this root project to deploy a container. You can [get docker images on docker hub](https://hub.docker.com/r/inseefr/pearl-jam-back-office)\n\n[Helm chart repository](https://github.com/InseeFr/Helm-Charts/) is available for the pearl jam backoffice/db/frontend\n\n\n## Liquibase\nLiquibase is enabled by default and run changelogs if needed.\n\n#### Properties\nMinimal configuration for dev purpose only (no auth)\nUser is considered as authenticated admin user\n\n```yaml  \napplication:\n  roles:\n    interviewer:\n    local_user:\n    national_user:\n    admin: admin_user\n    webclient:\nfeature:\n  oidc:\n    enabled: false\n  swagger:\n    enabled: true\nspring:\n  datasource:\n    url: jdbc:postgresql://localhost:5432/pearljam\n    username: \n    password:\n    driver-class-name: org.postgresql.Driver\n  liquibase:\n    contexts: dev\n    changeLog: classpath:db/demo.xml\n  messages:\n    cache-seconds: 1\n  jpa:\n    show-sql: true\n    properties:\n      hibernate:\n        format_sql: false\n  jackson:\n    serialization:\n      indent-output: true\n\nlogging:\n  level:\n    org:\n      hibernate:\n        SQL: WARN\n        type:\n          descriptor:\n            sql:\n              BasicBinder: WARN\n    liquibase: INFO\n```\n\n## End-Points\n### Campaign-Controller\n- `POST /api/campaign` : Post Campaign\n- `DELETE /api/campaign/{id}` : Delete Campaign\n- `PUT /api/campaign/{id}/collection-dates` : Put campaignCollectionDates\n- `GET /api/campaign/{id}/interviewers` : Get interviewers\n- `GET /api/campaign/{id}/survey-units/abandoned` : Get numberSUAbandoned\n- `GET /api/campaign/{id}/survey-units/not-attributed` : Get numberSUNotAttributed\n- `PUT /api/campaign/{idCampaign}/organizational-unit/{idOu}/visibility` : Change visibility of a campaign for an Organizational Unit\n- `GET /api/campaigns` : Get Campaigns\n- `GET /campaigns/{id}/ongoing` campaign is ongoing\n- `GET /api/campaigns/ongoing` : Campaigns is ongoing (BATCH extraction-transfert-synchronisation)\n\n### Closing-Cause-Controller\n- `GET /api/campaign/{id}/survey-units/interviewer/{idep}/closing-causes` : Get interviewerStateCount\n\n### Contact-Outcome-Controller\n- `GET /api/campaign/{id}/survey-units/contact-outcomes` : Get campaignStateCount\n- `GET /api/campaign/{id}/survey-units/interviewer/{idep}/contact-outcomes` : Get contact-outcome type for an interviewer on a specific campaign\n- `GET /api/campaign/{id}/survey-units/not-attributed/contact-outcomes` : Get Contact-outcomes count for non attributted SUs\n- `GET /api/campaigns/survey-units/contact-outcomes` : Get campaignStateCount\n\n### Data-Set-Controller\n- `POST /api/create-dataset` : Create dataset\n- `DELETE /api/delete-dataset` : Delete dataset\n\n### Interviewer-Controller\n- `GET /api/interviewer/{id}/campaigns` : Get interviewer campaigns\n- `GET /api/interviewers` : Get interviewers\n- `POST /api/interviewers` : Post interviewers\n\n### Message-Controller\n- `POST /api/mail` : Send mail to admins defined in properties\n- `POST /api/message` : Post a message\n- `GET /api/message-history` : Get the message history\n- `PUT /api/message/{id}/interviewer/{idep}/delete` : Mark a message as deleted\n- `PUT /api/message/{id}/interviewer/{idep}/read` : Mark a message as read\n- `GET /api/messages/{id}` : Get a message\n- `POST /api/verify-name` : Update Messages with campaigns or interviewers listed in request body\n\n### Organization-Unit-Controller\n- `DELETE /api/organization-unit/{id}` : Delete an Organization-unit\n- `POST /api/organization-unit/{id}/users` : add users to an organization-unit\n- `GET /api/organization-units` : Get all organization-units\n- `POST /api/organization-units` : Create Context with Organizational Unit and users associated\n\n### Preference-Controller\n- `PUT /api/preferences` : Update preferences with campaigns listed in request body\n\n### State-Controller\n- `GET /api/campaign/{id}/survey-units/interviewer/{idep}/state-count` : Get interviewerStateCount\n- `GET /api/campaign/{id}/survey-units/not-attributed/state-count` : Get state count for non attributted SUs\n- `GET /api/campaign/{id}/survey-units/state-count` : Get campaignStateCount\n- `GET /api/campaigns/survey-units/state-count` : Get campaignStateCount\n- `GET /api/interviewers/survey-units/state-count` : Get interviewersStateCount\n\n### Survey-Unit-Controller\n- `GET /api/campaign/{id}/survey-units` : Update the Survey Unit\n- `GET /api/check-habilitation` : Check habilitation\n- `GET /api/survey-unit/{id}` : Get detail of specific survey unit\n- `PUT /api/survey-unit/{id}` : Update the Survey Unit\n- `PUT /api/survey-unit/{id}/close/{closingCause}` : Closes a survey unit\n- `PUT /api/survey-unit/{id}/closing-cause/{closingCause}` : Add Closing cause\n- `PUT /api/survey-unit/{id}/comment` : Update the state of Survey Units listed in request body\n- `PUT /api/survey-unit/{id}/state/{state}` : Update the state of Survey Units listed in request body\n- `GET /api/survey-unit/{id}/states` : Get states of given survey unit\n- `PUT /api/survey-unit/{id}/viewed` : Update the state of Survey Units listed in request body\n- `GET /api/survey-units` : Get SurveyUnits\n- `POST /api/survey-units` : POST SurveyUnit assignations to interviewer\n- `GET /api/survey-units/closable` : Get closable survey units\n- `POST /api/survey-units/interviewers` : Post SurveyUnits\n- `DELETE /api/survey-unit/{id}` : Delete SurveyUnit\n\n\n### User-Controller\n- `GET /api/user` : Get User\n- `DELETE /api/user/{id}` : Delete User\n\n## Libraries used\n- spring-boot-data-jpa\n- spring-boot-security\n- spring-boot-web\n- spring-boot-tomcat\n- spring-boot-test\n- spring-boot-starter-oauth2-resource-server\n- liquibase\n- postgresql\n- h2 (tests)\n- junit\n- springdoc\n\n## License\nPlease check [LICENSE](https://github.com/InseeFr/Pearl-Jam-Back-Office/blob/master/LICENSE) file\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finseefr%2Fpearl-jam-back-office","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finseefr%2Fpearl-jam-back-office","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finseefr%2Fpearl-jam-back-office/lists"}