Back-office services for Pearl Jam
REST API for communication between Pearl Jam DB and Pearl Jam UI.
For building and running the application you need:
- JDK 21
- Maven 3
Use the maven clean and maven install
mvn clean installmvn spring-boot:runmvn clean packageThe jar will be generated in /target repository
java -jar app.jarTo access the swagger-ui, use this url : http://localhost:8080/swagger-ui/index.html
A Dockerfile is present on this root project to deploy a container. You can get docker images on docker hub
Helm chart repository is available for the pearl jam backoffice/db/frontend
Liquibase is enabled by default and run changelogs if needed.
Minimal configuration for dev purpose only (no auth) User is considered as authenticated admin user
application:
roles:
interviewer:
local_user:
national_user:
admin: admin_user
webclient:
feature:
oidc:
enabled: false
swagger:
enabled: true
spring:
datasource:
url: jdbc:postgresql://localhost:5432/pearljam
username:
password:
driver-class-name: org.postgresql.Driver
liquibase:
contexts: dev
changeLog: classpath:db/demo.xml
messages:
cache-seconds: 1
jpa:
show-sql: true
properties:
hibernate:
format_sql: false
jackson:
serialization:
indent-output: true
logging:
level:
org:
hibernate:
SQL: WARN
type:
descriptor:
sql:
BasicBinder: WARN
liquibase: INFOPOST /api/campaign: Post CampaignDELETE /api/campaign/{id}: Delete CampaignPUT /api/campaign/{id}/collection-dates: Put campaignCollectionDatesGET /api/campaign/{id}/interviewers: Get interviewersGET /api/campaign/{id}/survey-units/abandoned: Get numberSUAbandonedGET /api/campaign/{id}/survey-units/not-attributed: Get numberSUNotAttributedPUT /api/campaign/{idCampaign}/organizational-unit/{idOu}/visibility: Change visibility of a campaign for an Organizational UnitGET /api/campaigns: Get CampaignsGET /campaigns/{id}/ongoingcampaign is ongoingGET /api/campaigns/ongoing: Campaigns is ongoing (BATCH extraction-transfert-synchronisation)
GET /api/campaign/{id}/survey-units/interviewer/{idep}/closing-causes: Get interviewerStateCount
GET /api/campaign/{id}/survey-units/contact-outcomes: Get campaignStateCountGET /api/campaign/{id}/survey-units/interviewer/{idep}/contact-outcomes: Get contact-outcome type for an interviewer on a specific campaignGET /api/campaign/{id}/survey-units/not-attributed/contact-outcomes: Get Contact-outcomes count for non attributted SUsGET /api/campaigns/survey-units/contact-outcomes: Get campaignStateCount
POST /api/create-dataset: Create datasetDELETE /api/delete-dataset: Delete dataset
GET /api/interviewer/{id}/campaigns: Get interviewer campaignsGET /api/interviewers: Get interviewersPOST /api/interviewers: Post interviewers
POST /api/mail: Send mail to admins defined in propertiesPOST /api/message: Post a messageGET /api/message-history: Get the message historyPUT /api/message/{id}/interviewer/{idep}/delete: Mark a message as deletedPUT /api/message/{id}/interviewer/{idep}/read: Mark a message as readGET /api/messages/{id}: Get a messagePOST /api/verify-name: Update Messages with campaigns or interviewers listed in request body
DELETE /api/organization-unit/{id}: Delete an Organization-unitPOST /api/organization-unit/{id}/users: add users to an organization-unitGET /api/organization-units: Get all organization-unitsPOST /api/organization-units: Create Context with Organizational Unit and users associated
PUT /api/preferences: Update preferences with campaigns listed in request body
GET /api/campaign/{id}/survey-units/interviewer/{idep}/state-count: Get interviewerStateCountGET /api/campaign/{id}/survey-units/not-attributed/state-count: Get state count for non attributted SUsGET /api/campaign/{id}/survey-units/state-count: Get campaignStateCountGET /api/campaigns/survey-units/state-count: Get campaignStateCountGET /api/interviewers/survey-units/state-count: Get interviewersStateCount
GET /api/campaign/{id}/survey-units: Update the Survey UnitGET /api/check-habilitation: Check habilitationGET /api/survey-unit/{id}: Get detail of specific survey unitPUT /api/survey-unit/{id}: Update the Survey UnitPUT /api/survey-unit/{id}/close/{closingCause}: Closes a survey unitPUT /api/survey-unit/{id}/closing-cause/{closingCause}: Add Closing causePUT /api/survey-unit/{id}/comment: Update the state of Survey Units listed in request bodyPUT /api/survey-unit/{id}/state/{state}: Update the state of Survey Units listed in request bodyGET /api/survey-unit/{id}/states: Get states of given survey unitPUT /api/survey-unit/{id}/viewed: Update the state of Survey Units listed in request bodyGET /api/survey-units: Get SurveyUnitsPOST /api/survey-units: POST SurveyUnit assignations to interviewerGET /api/survey-units/closable: Get closable survey unitsPOST /api/survey-units/interviewers: Post SurveyUnitsDELETE /api/survey-unit/{id}: Delete SurveyUnit
GET /api/user: Get UserDELETE /api/user/{id}: Delete User
- spring-boot-data-jpa
- spring-boot-security
- spring-boot-web
- spring-boot-tomcat
- spring-boot-test
- spring-boot-starter-oauth2-resource-server
- liquibase
- postgresql
- h2 (tests)
- junit
- springdoc
Please check LICENSE file