GithubHelp home page GithubHelp logo

gradeful.io's Introduction

Gradeful.io

A multi-lingual attendance taking tool for educators in Japan that integrates in-class assessments.

Project Overview

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

Status

Currently, only the student microservice has been partially implemented, and will add students in the database.

Backend Installation

Be sure to have Docker and Docker Compose installed.

$ npm install
$ docker compose build

Running the backend

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.

Testing the Backend

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": ""
      }
    }
  ],
}

Known Issues

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

Contributors

  • Author - Ryan Laboucane

gradeful.io's People

Contributors

rylabo avatar

Watchers

 avatar

gradeful.io's Issues

configure as monorepo

Currently, we are using the client repo as a subtree to this repo, but there a re better tools, like Nx, that can make managing this more smooth. It would be way better to switch to a tool like that.

Implement Seating Planner

Implement the seating planner, where students are assigned desks and can be dragged and dropped into empty desks.

Create A Doc for Data Schema

Create one Doc per API known endpoint and put it in a folder called spec in the repo. Write it in markdown

Must include:

table of content with links to each section

example

  1. I/O
    Frontend <-> Student Detail API
    URL: https://.../api/student
    Http Method: GET

  2. Request Header
    key | value
    token | jwt string etc...

  3. Request Body

Sample of full body in JSONLD

Key Type Sample Value
Name String Bob Smith

  1. Flow ( Optional )
    Visual chart of the full transaction browser to endpoint to DB etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.