Skip to content

Latest commit

 

History

History
339 lines (238 loc) · 10.4 KB

slides.md

File metadata and controls

339 lines (238 loc) · 10.4 KB
theme background class download highlighter lineNumbers info drawings title
seriph
text-center
true
shiki
false
## Official slides for CorrectExam Learn more at [corrigeExamFront](https://olivier.barais.fr/corrigeExamFront/)
persist
Correct Exam

Correct Exam

Modern software architecture in practise

Press Space for next page

My mojo

https://www.linkedin.com/pulse/i-have-right-do-research-software-engineering-hafedh-mili/

Parnas noted "I would never have realized the nature of the problem, unless I had been working on that project, reviewing development documents, and sitting at that lunch table". Well, minimally, I need to be able to understand the conversation at that lunch table!

So here is a practical definition of what "understanding the conversation" means in this context: You have no credibility to do software engineering research unless you have at least the development skills/vocabulary of your graduating bachelor students.

That is why: I enjoy building real software, doing consultancy, working with students, ...


layout: center class: text-center

The project: CorrectExam


Requirements

Encourage students to look at corrected copies more often to learn from their mistakes

  • Fairer correction

    • a statistical view of results
    • anonymous, random correction...
    • ability to modify the scale on the fly
  • Correct more effectively

    • simultaneously
    • question by question / copy by copy
    • batch
    • automated correction for MCQs
    • on tablet or computer
    • avoiding "all MCQs

Highly inspired by GradeScope Solution

Gradescope grading software allows students to receive faster and more detailed feedback on their work, and allows instructors to see detailed assignment and question analytics. It is an easy way to take submissions digitally in order to preserve the original work and allow for quick and easy viewing from anywhere.


Why building that piece of software ?

  • Insufficient feedback from evaluations to students
  • ChatGPT & consorts but also Github Copilot, ... are here
    • They "trivialize" a lot of our homework, exams, projects, TPs, TDs...
    • => We need to evolve the way we teach / what we teach / what we assess / how we assess it ... Paper/pencil still has a future for assessment
  • Allow exams to be corrected during meetings 😀
  • Save $5 per student copy
  • Create an open source implementation
    • to master privacy/teaching analytics issues
    • of real software with a complex architecture to provide a case study for :
      • explain modern software architecture to students
      • experience in software engineering research
  • Trying to keep credibility (in my vision) to do software engineering research

Project history

  • March 2022: First discussion
  • April 2022: 2 first exams in test mode @UnivRennes
  • September 2022: new features (MCQs, translation, etc.), test extensions (IUT Toulouse, Université de Nice, INSA Rennes, etc.).
  • Spring 2023: Improvements based on user feedback (85 PR between January and May 2023)
  • Summer 2023: Batch correction, performance enhancement, identity federation integration, support for standalone mode to correct directly from your PC without data sharing)
  • Autumn 2023: Annotated pdf export, Performance improvement (Exam support for over 5000 copies)
  • Christmas 2023: New scoring mechanism (hybrid), hackmd and asciidoc templates, ...
  • April 2024: New zen mode for correction, random correction, latex template evolution, improvements based on feedback from users...
  • 377 + 131 PR since the start of the project
  • 250 corrected exams (120 users growing since September 2023) 👏👏👏👏


Features 1/2

  • Free-format exam template (word, libroffice, latex, asciidoc, markdown, ...) PDF input only required
  • Import and manipulate scans in pdf format (page order, rotation, deletion)
  • Copy sheet alignment (to correct scan defects)
  • Name recognition on copies (to assign copies to students)
  • Tag best/least correct answers (to generate a standard answer sheet on the fly)
  • Support for direct rating, positive, negative or hybrid
  • Quick comparison of answers with the same comments / same question
  • MCQ support (not as good as AMC: Auto multiple Choice https://www.auto-multiple-choice.net/)
  • Batch correction (to score a set of similar answers in a single step)
  • Annotate copies with a stylus during correction
  • Statistics by exam

Features 2/2

  • Import/Export modules with or without student data
  • Import/Export comments
  • Email to students with their copy in the form of an annotated pdf and/or with a link for consultation on the platform
  • Export results in Excel format (to be sent to school)
  • Support for University identity federations
  • Zen mode ....

OpenHub identity card


layout: center class: text-center

Architectural choices / Functionality

  • Deport everything that requires computing power to the browser:
  • Image processing
  • Machine learning
  • Cache
  • Parallelization

The technical architecture

  • Quarkus for the back (Java + native compilation through GraalVM)
  • Angular for the front
    • pdf.js to play with pdf (exam, scan exam, feedback for students)
    • fabric.js to draw on top of a pdf
    • opencv in wasm within a web worker to analyse the scan
    • tensorflow JS with the browser for digit and letter recognition
    • ...
  • Docker and K8S to deploy the back and the monitoring layer
  • Front is hosted in a CDN to follow the JamStack architecture (currently github page, netifly and cloudfare)
  • CI/CD using github action, dockerhub webhook, and gowebhook
  • jest and cypress for unit and system testing

Architecture overview


Diagrams

Conceptual architecture

@startuml


package "Front" {
  MSGBus - [Web Worker (OpenCV WASM)]
  [Angular Front] - MSGBus
}


package "Back" {
  [Back (Quarkus.io)]
}


database "MySql" {
  folder "CorrectExamDB1" {
    [CorrectExamDB]
  }
}


[Angular Front] --> [Back (Quarkus.io)]
[Back (Quarkus.io)] --> [CorrectExamDB]

@enduml

deployed architecture

@startuml

cloud "CDN (github page)" {
  [Front]
}

cloud {
  [Back (Quarkus.io)]
  [CorrectExamDB (Mysql)]
}

[Front] --> [Back (Quarkus.io)]
[Back (Quarkus.io)] --> [CorrectExamDB (Mysql)]

@enduml

layout: center class: text-center

Feedback/Community structuring


Some feedbacks

"I've just finished correcting my first exam with CorrectExam, and I'm pleasantly surprised by how easy it is to use, it's very functional, I couldn't say if I'm saving time, but the feedback to the student seems very important to me, and that's what I prefer. And I can see that features are being added as we go along (text comments with text box!)."
Julien Geandrot, 19/11/2023

  • Many emails ~300 emails
  • Compliance for RGPD, Student Intellectual Property, ... (discussion with University lawyers).
  • Setting up a mailing list, matrix channel, an operational committee, etc.
  • GitHub as a collaboration platform

layout: center class: text-center

Roadmap


Roadmap


Where are we

  • Become usable ;)
  • An ergonomist will continue to work this summer
  • Nantes AND Paris are on board ;)
  • Intuidoc will help
  • Should be under the Esup-portal banner
  • ...

Perspectives

  • As a research project:
    • two DSLs to implements:
      • MCQ scale, DMOS (Intuidoc)
    • Variability analysis

Learn More