Skip to content

A conversational AI prototype for dental diagnostics. This full-stack project features a rule-based engine in a NestJS API and an interactive chat UI in Angular.

License

Notifications You must be signed in to change notification settings

fuentesbusco/conversational-dental-diagnostic-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Conversational Dental Diagnostic AI

NestJS Angular TypeScript TailwindCSS

This is a full-stack proof-of-concept for an AI-assisted diagnostic platform, featuring a robust NestJS backend and a modern Angular frontend. This project was built to showcase advanced architectural patterns and modern web development practices in a real-world context.

📝 Overview

The application provides a conversational interface to assist dental professionals in diagnosing conditions based on radiographic findings. A user can input a text-based report, and the system guides them through a dynamic, multi-step dialogue to arrive at a preliminary recommendation.

This repository is structured as a monorepo with two main packages:

  • /backend: A NestJS API that serves the conversation logic, complete with API documentation, health checks, and unit tests.
  • /frontend: An Angular single-page application that provides a polished and responsive user interface.

🏛️ Architectural Approach: Rule-Based Engine vs. Generative AI

While a production-grade application of this nature could integrate a Large Language Model (LLM) like OpenAI's GPT series, this prototype deliberately implements a deterministic, rule-based engine using a decision-tree.json file.

This choice was made for several strategic reasons:

  1. Predictability & Control: In a medical context, a deterministic and predictable conversation flow is critical for ensuring consistency and reliability in diagnostic support.
  2. Demonstrates Core Logic: Building a rule-based engine requires explicitly modeling the diagnostic domain logic, showcasing the ability to translate complex requirements into a structured system.
  3. Focus on Architecture: This approach allows the project to focus on fundamental software architecture: building a scalable, well-tested, and maintainable system around a self-contained logic core.

✨ Features

  • Full-Stack Application: Monorepo with a NestJS backend and Angular frontend.
  • Interactive Conversational UI: A polished, chat-like interface built with Tailwind CSS.
  • Decoupled Rule-Based Engine: Conversation logic is managed in an external JSON file, making it easy to update without code changes.
  • API Documentation: Interactive API documentation powered by Swagger (OpenAPI).
  • Health Checks: A /health endpoint using Terminus to monitor application status, memory, and disk usage.
  • Unit Tested: Both backend and frontend include unit tests using Jest and Jasmine.
  • Professional Tooling: Includes full VS Code debug configurations and code formatting with Prettier.

🚀 Tech Stack

Component Technology
Backend NestJS, TypeScript, Terminus, Swagger, Jest
Frontend Angular, TypeScript, Tailwind CSS, Jasmine

⚙️ Getting Started

Prerequisites

  • Node.js (v20.x or later)
  • npm
  • Angular CLI (npm install -g @angular/cli)

Running the Full Application

You will need two separate terminal sessions to run both the backend and frontend concurrently.

1. Run the Backend:

# In your first terminal
cd backend
npm install
npm run start:dev

The backend API will be running at http://localhost:3000.

2. Run the Frontend:

# In your second terminal
cd frontend
npm install
ng serve

The frontend application will be available at http://localhost:4200. Once both are running, open your browser to use the application.

About

A conversational AI prototype for dental diagnostics. This full-stack project features a rule-based engine in a NestJS API and an interactive chat UI in Angular.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors