Skip to content
All projects

Case study · 05

Status: In progress

Student Progress Analyzer

A desktop app (Electron + React + Node.js) that automates the admin side of teaching a programming class: groups, students, tasks and attendance, grades on the Polish 2.0–5.0 scale, and AI code review of students' GitHub repositories using a model that runs locally.

Source code is not publicly available

Code review · process diagram

  1. GitHub API: student's repos
  2. fetch the source code
  3. Ollama (local LLM) review
  4. parse JSON: line, severity
  5. save to student history

01 · Problem

What needed solving

Running a programming class means tracking attendance and points in spreadsheets and reading a lot of student code by hand, with no quick overview of who is falling behind.

02 · Solution

How it works

An Express + MongoDB REST API behind JWT authentication, a React + Tailwind client with Recharts, and Electron wrapping it into a portable Windows app. The GitHub API fetches a student's repositories and code; Ollama runs the review on the teacher's machine, so student code never goes to a cloud service.

03 · Key features

What it does

  • Groups, students, tasks and attendance, with attendance stats updated as you go
  • Points converted to the Polish grading scale (2.0–5.0) per student and per class
  • CSV import of students; CSV and Excel export at the end of the semester
  • AI code review of a student's GitHub repository, saved to the student's history
  • Dashboard with grade distribution, attendance chart and a PL/EN interface

04 · Tech stack

Built with

  • TypeScript
  • Node.js
  • Express
  • MongoDB
  • React
  • Electron
  • Ollama
Status
In progress
Code
Source code is not publicly available
Demo
No public demo

05 · Challenges

What was tricky

  1. Parsing the model's answer

    Local models often wrap JSON in markdown or add text after it. A cleaning step cuts everything before the first brace, removes code fences and trims trailing text before the response is parsed.

  2. No MongoDB installed

    If MongoDB isn't reachable, the backend falls back to an in-memory MongoDB instance, so the app still starts on a fresh machine.

  3. Student code stays local

    Reviews run through Ollama on the teacher's computer instead of a cloud API, so students' code is never sent to a third party.