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 install
mvn spring-boot:run
mvn clean package
The jar will be generated in /target
repository
java -jar app.jar
To 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: INFO
POST /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 Campaigns
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