1. Project Overview

Aria is a generative AI chatbot powered by Anthropic’s Claude model, integrated into a standalone website built with Python (Flask). Unlike rule-based bots that only match predefined keywords, Aria generates intelligent, context-aware responses to any question in real time.

The project covers the full development lifecycle: designing the chatbot personality, building the web interface, integrating the AI model, and deploying to AWS Elastic Beanstalk with auto-scaling.


2. Objectives


3. System Architecture

User Browser
     |
     | HTTP Request
     v
Flask Web Server (AWS EC2 / Local)
     |
     |-- GET  /           --> Landing page (index.html)
     |-- GET  /chat       --> Chat interface (chat.html)
     |-- POST /api/chat   --> Receives message, calls Claude, returns reply
     |-- GET  /api/health --> Health check endpoint
     |
     | HTTPS API Call
     v
Anthropic Claude API (claude-sonnet model)
     |
     | JSON Response
     v
Flask returns reply to browser
     |
     v
JavaScript updates chat UI in real time

How a message flows:

  1. User types a message and presses Enter
  2. JavaScript collects the full conversation history plus new message
  3. A POST request is sent to /api/chat
  4. Flask sends the messages to the Claude API with the system prompt
  5. Claude generates a response
  6. Flask returns the response as JSON
  7. JavaScript displays the response in the chat UI with formatting

4. Tech Stack

Layer Technology Purpose
Frontend HTML5, CSS3, JavaScript Chat UI and user interactions
Styling Bootstrap 5, Custom CSS Dark theme, responsive layout
Backend Python 3.11, Flask API routes and Claude integration
AI Model Anthropic Claude (claude-sonnet) Generative AI responses
Deployment AWS Elastic Beanstalk Cloud hosting
Web Server Gunicorn Production WSGI server

5. Phase 1 — VS Code Project Setup