Skip to content

Commit 448d2e9

Browse files
authored
Merge pull request #168 from openscript-ch/14-add-management-interfaces-for-administrators-to-edit-language-and-people-lists
feat: research management ui
2 parents 8df522f + f2be457 commit 448d2e9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1905
-568
lines changed

.changeset/config.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
"$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json",
33
"changelog": "@changesets/cli/changelog",
44
"commit": false,
5-
"fixed": [],
6-
"linked": [
5+
"fixed": [
76
[
87
"@quassel/frontend",
9-
"@quassel/ui"
8+
"@quassel/backend"
109
]
1110
],
11+
"linked": [],
1212
"access": "restricted",
1313
"baseBranch": "main",
1414
"updateInternalDependencies": "patch",

.changeset/forty-crabs-repeat.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@quassel/backend": patch
3+
---
4+
5+
Add healthchecks

.changeset/popular-shrimps-cry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@quassel/backend": patch
3+
---
4+
5+
Add status endpoint

.changeset/seven-mirrors-enjoy.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@quassel/frontend": patch
3+
"@quassel/backend": patch
4+
---
5+
6+
Add questionnaire management

.changeset/sixty-wombats-fetch.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@quassel/frontend": patch
3+
"@quassel/backend": patch
4+
---
5+
6+
Add studies management

.changeset/strong-poets-cry.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@quassel/frontend": patch
3+
"@quassel/backend": patch
4+
---
5+
6+
Add participants management

.devcontainer/devcontainer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,8 @@
1313
"DavidAnson.vscode-markdownlint"
1414
]
1515
}
16+
},
17+
"features": {
18+
// "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
1619
}
1720
}

apps/backend/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ RUN npm install --omit=dev
88

99
# Production image, copy all the files and run nest
1010
FROM docker.io/node:20-alpine AS runner
11-
RUN apk add --no-cache dumb-init
11+
RUN apk add --no-cache dumb-init curl
1212
ENV NODE_ENV=production
1313
ENV PORT=3000
1414
WORKDIR /usr/src/app
@@ -18,4 +18,6 @@ COPY dist/ .
1818
RUN chown -R node:node .
1919
USER node
2020
EXPOSE 3000
21+
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
22+
CMD curl --fail http://localhost:3000/health || exit 1
2123
CMD ["dumb-init", "node", "src/main.js"]

apps/backend/db/migrations/.snapshot-postgres.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@
283283
"unsigned": false,
284284
"autoincrement": false,
285285
"primary": false,
286-
"nullable": false,
286+
"nullable": true,
287287
"length": 6,
288288
"mappedType": "datetime"
289289
},
@@ -293,7 +293,7 @@
293293
"unsigned": false,
294294
"autoincrement": false,
295295
"primary": false,
296-
"nullable": false,
296+
"nullable": true,
297297
"length": 6,
298298
"mappedType": "datetime"
299299
},
@@ -303,7 +303,7 @@
303303
"unsigned": false,
304304
"autoincrement": false,
305305
"primary": false,
306-
"nullable": false,
306+
"nullable": true,
307307
"length": 255,
308308
"mappedType": "string"
309309
},
@@ -322,7 +322,7 @@
322322
"unsigned": false,
323323
"autoincrement": false,
324324
"primary": false,
325-
"nullable": false,
325+
"nullable": true,
326326
"mappedType": "integer"
327327
},
328328
"participant_id": {
@@ -331,7 +331,7 @@
331331
"unsigned": false,
332332
"autoincrement": false,
333333
"primary": false,
334-
"nullable": false,
334+
"nullable": true,
335335
"mappedType": "bigint"
336336
}
337337
},
@@ -361,6 +361,7 @@
361361
"id"
362362
],
363363
"referencedTableName": "public.study",
364+
"deleteRule": "set null",
364365
"updateRule": "cascade"
365366
},
366367
"questionnaire_participant_id_foreign": {
@@ -373,6 +374,7 @@
373374
"id"
374375
],
375376
"referencedTableName": "public.participant",
377+
"deleteRule": "set null",
376378
"updateRule": "cascade"
377379
}
378380
},
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { Migration } from "@mikro-orm/migrations";
2+
3+
export class Migration20241108015549 extends Migration {
4+
override async up(): Promise<void> {
5+
this.addSql(`alter table "questionnaire" drop constraint "questionnaire_study_id_foreign";`);
6+
this.addSql(`alter table "questionnaire" drop constraint "questionnaire_participant_id_foreign";`);
7+
8+
this.addSql(`alter table "questionnaire" alter column "started_at" type timestamptz using ("started_at"::timestamptz);`);
9+
this.addSql(`alter table "questionnaire" alter column "started_at" drop not null;`);
10+
this.addSql(`alter table "questionnaire" alter column "ended_at" type timestamptz using ("ended_at"::timestamptz);`);
11+
this.addSql(`alter table "questionnaire" alter column "ended_at" drop not null;`);
12+
this.addSql(`alter table "questionnaire" alter column "title" type varchar(255) using ("title"::varchar(255));`);
13+
this.addSql(`alter table "questionnaire" alter column "title" drop not null;`);
14+
this.addSql(`alter table "questionnaire" alter column "study_id" type int using ("study_id"::int);`);
15+
this.addSql(`alter table "questionnaire" alter column "study_id" drop not null;`);
16+
this.addSql(`alter table "questionnaire" alter column "participant_id" type bigint using ("participant_id"::bigint);`);
17+
this.addSql(`alter table "questionnaire" alter column "participant_id" drop not null;`);
18+
this.addSql(
19+
`alter table "questionnaire" add constraint "questionnaire_study_id_foreign" foreign key ("study_id") references "study" ("id") on update cascade on delete set null;`
20+
);
21+
this.addSql(
22+
`alter table "questionnaire" add constraint "questionnaire_participant_id_foreign" foreign key ("participant_id") references "participant" ("id") on update cascade on delete set null;`
23+
);
24+
}
25+
26+
override async down(): Promise<void> {
27+
this.addSql(`alter table "questionnaire" drop constraint "questionnaire_study_id_foreign";`);
28+
this.addSql(`alter table "questionnaire" drop constraint "questionnaire_participant_id_foreign";`);
29+
30+
this.addSql(`alter table "questionnaire" alter column "started_at" type timestamptz using ("started_at"::timestamptz);`);
31+
this.addSql(`alter table "questionnaire" alter column "started_at" set not null;`);
32+
this.addSql(`alter table "questionnaire" alter column "ended_at" type timestamptz using ("ended_at"::timestamptz);`);
33+
this.addSql(`alter table "questionnaire" alter column "ended_at" set not null;`);
34+
this.addSql(`alter table "questionnaire" alter column "title" type varchar(255) using ("title"::varchar(255));`);
35+
this.addSql(`alter table "questionnaire" alter column "title" set not null;`);
36+
this.addSql(`alter table "questionnaire" alter column "study_id" type int using ("study_id"::int);`);
37+
this.addSql(`alter table "questionnaire" alter column "study_id" set not null;`);
38+
this.addSql(`alter table "questionnaire" alter column "participant_id" type bigint using ("participant_id"::bigint);`);
39+
this.addSql(`alter table "questionnaire" alter column "participant_id" set not null;`);
40+
this.addSql(
41+
`alter table "questionnaire" add constraint "questionnaire_study_id_foreign" foreign key ("study_id") references "study" ("id") on update cascade;`
42+
);
43+
this.addSql(
44+
`alter table "questionnaire" add constraint "questionnaire_participant_id_foreign" foreign key ("participant_id") references "participant" ("id") on update cascade;`
45+
);
46+
}
47+
}

0 commit comments

Comments
 (0)