A multi-lingual attendance taking tool for educators in Japan that integrates in-class assessments.
The project consists of a backend implemented in Nest.js, a server-side, Angular-like framework, and a front-end implemented using the Next.js React framework. The server-side sits in the root folder, while the clients live in the /client
subfolder.
The remainder of this document refers to the server side implementation. For the front-end, refer to the
Currently, only the student microservice has been partially implemented, and will add students in the database.
Be sure to have Docker and Docker Compose installed.
$ npm install
$ docker compose build
Teh implemented portion of the backend can be started with
$ docker compose up people
This will spin up several services;
- kafka (and dependencies)
- people (and dependendencies)
- student-db
- nginx
These should succcessfully connect to kafka, and enable the /api/people
endpoint.
Once running, you can add students using POST an array of Student
objects to the /api/people
endpoint (on localhost:3000) by default.
The form of the student object is as follows:
{
"@type": [
"Student"
],
"attendanceNumber": "1101",
"givenNames": [
{
"annotation": "ガクセイ",
"nameToken": {
"en": "Gakusei",
"ja": "学生"
}
}
],
"familyNames": [
{
"annotation": "イチ",
"nameToken": {
"en": "Ichi",
"ja": "一"
}
}
],
}
The people
microservice fails on startup, with the following message:
Waiting on broker
wait-for-it.sh: waiting 15 seconds for broker:29092
wait-for-it.sh: timeout occurred after waiting 15 seconds for broker:29092
Despite this, the message broker starts as normal, so simply try again:
$ docker compose up people
- Author - Ryan Laboucane