Git Product home page Git Product logo

corrigeexamback's Introduction

CorrectExam back-end

The back-end of the app CorrectExam.

CorrectExam

Deliver and Grade Your Assessments Anywhere

This application helps you seamlessly administer and grade all of your in-class assessments (long exam or short). Save time grading and get a clear picture of how your students are doing. Provide a clear feedback to your students.

Feature

Main feature are:

  • automatically align your scan
  • automatically recognize your student name and firstname on sheet
  • identify zones for question to support horizontal or vertical correction
  • create generic comment per question with associated bonus or malus to efficiently correct each question
  • use your tablet and your pen to annotate student sheet
  • provide clear feedback to your students

Technical stack

This application was generated using JHipster 6.10.5 and JHipster Quarkus 1.1.1 (manually upgraded to quarkus 2.9.2.Final), you can find documentation and help at https://www.jhipster.tech/documentation-archive/v6.10.5.

### Build and deploy

Documentation to deploy your own instance is available here

Development

Install

The back-end requires Minio to store the PDF files. An easy way to install and launch Minio on your computer is to use an official Docker image:

podman run -p 9000:9000 -d -p 9090:9090 -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=minioadmin" -v /media/data/miniofiles:/data:Z quay.io/minio/minio server /data --console-address ":9090"

The back-end also requires a database. On Linux you can install MariaDB. On Fedora, you can run:

sudo dnf install mariadb-server
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation

sudo mysql -u root
CREATE DATABASE gradeScopeIstic;

The first run of the back-end must initial and populate the DB with fake data. To do so, run:

./mvnw quarkus:dev -Dquarkus.liquibase.migrate-at-start=true

It creates two users user:user and admin:admin. After that you can launch the back-end classically ./mvnw

Run in development mode

To start your application in the dev profile, run:

./mvnw

For further instructions on how to develop with JHipster, have a look at Using JHipster in development.

Building for production

Packaging as thin jar

To build the final jar and optimize the correctExam application for production, run:

./mvnw -Pprod clean package

To ensure everything worked, run:

java -jar target/quarkus-app/*.jar

Refer to Using JHipster in production for more details.

Packaging as native executable

Targeting your Operation System In order to build a native image locally, your need to have GraalVM installed and GRAALVM_HOME defined. You can use the native profile as follow to build native executable.

./mvnw package -Pnative

Keep in mind that the generated native executable is dependent on your Operating System.

Targeting a container environment If you plan to run your application in a container, run:

./mvnw package -Dnative -Dquarkus.native.container-build=true

It will use a Docker container with GraalVM installed and produce an 64 bit Linux executable.

Testing

To launch your application's tests, run:

./mvnw verify

For more information, refer to the Running tests page.

Using Docker to simplify development (optional)

You can use Docker to improve your JHipster development experience. A number of docker-compose configuration are available in the src/main/docker folder to launch required third party services.

For example, to start a mysql database in a docker container, run:

docker-compose -f src/main/docker/mysql.yml up -d

To stop it and remove the container, run:

docker-compose -f src/main/docker/mysql.yml down

corrigeexamback's People

Contributors

arnobl avatar barais avatar barbapapou avatar barbapapoy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

corrigeexamback's Issues

Backend crashes while annotating an exam template

  1. Create a new exam
  2. Go to annotate it
  3. create name, id, multiple question boxes
  4. delete all of them
  5. repeat operation 3 and 4 until an error 500 appears in the console. Then nothing can be done on the exam anymore

I suspect the front asking the back for removing a zone that does not exist anymore and the back crashes (error 500) instead of ignoring the request.

Provide a dedicated REST route for summarizing exam marking

To end the PR correctexam/corrigeExamFront#28 (provide users with a summary page related to the marking of a given exam).
I need a dedicated REST route (eg api/summaryexam/{examId}) that provide the data following this format:

{
  "nameExam": "foo",
  "questions": [{
      "id": 1,
      "answeredSheets": 2,
      "firstUnmarkedSheet": 10
  }],
  "students": [{
    "id": 23,
    "answeredSheets": 0,
    "firstUnmarkedQuestion": 1,
  }]
}

answeredSheets is the number of sheets the students answered, or answered for a given question.

firstUnmarkedQuestion is the id of the first sheet not answer by a given student, or for a given question.

Durée de conservation des données conformément au RGPD : Intégration au sein de la DSI

Afin de se conformer aux principes du RGPD, les données personnelles collectées par l'application doivent être régulièrement purgées. Il ne semble pas que cela soit actuellement le cas. Pour intégrer l'application au sein de la DSI, il serait nécessaire de mettre en place un tel système. Il conviendrait donc d'établir une durée maximale de conservation des données personnelles (nom, prénom, courriel, copie d'examen) dans la base de données de l'application.

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.