LUCA Nursing Assessment App

A full-stack Progressive Web App for novice nurses featuring AI-powered clinical recommendations via a custom weighted KNN retrieval model.

Project Overview

This application was built for a newly founded business aimed at solving the problem of novice nurses feeling overwhelmed and underprepared for patient assessments. My senior design team was tasked with building a minimum viable product to be released to a pilot group of nurses for feedback and validation.

As the development lead, I guided the team in designing and building the full-stack webapp, defining technical requirements and architecture. What resulted is a user-friendly application that guides new nurses through a structured patient assessment flow, collecting vitals and symptoms to generate clinical recommendations in real time.

Recommendations are produced by a custom weighted KNN retrieval model trained on verified clinical cases. Patient data is encoded into a feature vector with clinically prioritized weights, ensuring outputs are grounded in validated cases rather than generative inference — achieving 100% accurate outputs with no hallucination risk.

Technical Features

  • Guided Assessment Flow: Multi-step patient intake form collecting age, signs & symptoms, and vitals to build a structured feature vector for accurate model input
  • Account System: Full authentication flow with secure registration, bcrypt password hashing, JWT session management, and email-based password reset via SendGrid
  • React Frontend: Responsive Progressive Web App built with Vite and Tailwind CSS, installable on any device without an app store
  • FastAPI Backend: Python REST API handling model inference, session validation, and account management with Pydantic-enforced request validation
  • Supabase Integration: Postgres database via Supabase storing nurse accounts and sessions, with token expiry enforced at the query level for secure, server-side session management

App Walkthrough

Welcome page for the LUCA app

The entry point routes users to login or registration. Signup collects name, email, phone, date of birth, and specialty unit with inline validation and real-time password requirements.

Signup page for the LUCA app
Age input page for the LUCA app

The assessment begins by bucketing the patient into an age range, which feeds into the model. Numeric vitals are then entered — heart rate, blood pressure, temperature, respiratory rate, and SpO2 — each validated before proceeding.

Vitals input page for the LUCA app
Signs and symptoms page for the LUCA app

Signs and symptoms are collected across five clinical categories — color, respiratory, abdomen, alarms, and neuro — using single and multi-select modals, with an optional lab values field. The summary screen renders the full collected payload for review before submitting to the KNN model.

Summary page for the LUCA app