Deployed on AWS

CS211 Self-Assessment Tool

A full-stack web app deployed on AWS that assesses student readiness for CS211 across 8 Java topics. A scikit-learn decision tree recommends what each student should study, and an instructor dashboard shows class averages and topic mastery.

PythonFastAPIscikit-learnpandasAWS RDSApp Runner

The Problem

Spotting Gaps Early

Instructors need a quick way to see where incoming students are weak in core Java topics such as loops, OOP, collections, and interfaces. A single overall score hides which specific topics need work.

The Solution

Topic-Level Recommendations

A multi-step quiz covers 8 core Java topics. A multi-output decision tree, trained on past attempts stored in the database, flags each student's weak topics and recommends what to study.


Core Architecture & Features

The main components of the platform.

Study Recommendations

A multi-output decision tree classifier (scikit-learn), trained on past attempts, identifies each student's weak topics and returns study recommendations.

Data Layer

Every attempt is stored in AWS RDS (MySQL), with a secondary backup sent to Google Sheets. Student IDs are validated as 9-digit numbers in the browser and again on the server.

Cloud Infrastructure

A FastAPI backend, containerized and deployed on AWS App Runner, with database settings supplied through environment variables.

Instructor Dashboard

A login-protected dashboard shows class averages and topic mastery, with filters for quarter, session, and year, plus a recent-submissions table.

8
Java Topics Assessed
3
Dashboard Filters
22
Real Student Records