# 6.3 System Architecture Diagram
```mermaid
flowchart TB
U[End User]
subgraph L1[Presentation Layer]
FE[React Frontend
chat interface]
end
subgraph L2[Application Layer]
API[Flask Web Application
routing + /chat API]
STATIC[Static Asset Serving
serves built frontend]
end
subgraph L3[Service / Business Logic Layer]
CHAT[ChatService
request orchestration]
RULES[Intent, Topic, Safety,
Follow-up, Template Logic]
end
subgraph L4[Intelligence Layer]
EMO[Emotion Classifier
GoEmotions RoBERTa]
LLM[Response Generator
Flan-T5]
RET[KnowledgeBaseRetriever
TF-IDF / Embedding retrieval]
end
subgraph L5[Data / Knowledge Layer]
KB[Local Knowledge Base
menstrual-health text files]
HIST[Conversation History
user message context]
end
U --> FE
FE --> API
FE --> STATIC
API --> CHAT
CHAT --> RULES
CHAT --> EMO
CHAT --> LLM
CHAT --> RET
RET --> KB
CHAT --> HIST
RULES --> LLM
RULES --> RET
LLM --> CHAT
EMO --> CHAT
RET --> CHAT
CHAT --> API
API --> FE
```
Source alignment:
- [app.py](d:\FYP IMPLEMENTATION\EmpowerHer_Chatbot\app\app.py)
- [chat_service.py](d:\FYP IMPLEMENTATION\EmpowerHer_Chatbot\services\chat_service.py)
- [emotion_classifier.py](d:\FYP IMPLEMENTATION\EmpowerHer_Chatbot\models\emotion_classifier.py)
- [response_generator.py](d:\FYP IMPLEMENTATION\EmpowerHer_Chatbot\models\response_generator.py)
- [kb_retriever.py](d:\FYP IMPLEMENTATION\EmpowerHer_Chatbot\services\kb_retriever.py)