# rubivssingh281-lab/terraform-titans architecture

> Architecture diagram of the GitHub repository rubivssingh281-lab/terraform-titans, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rubivssingh281-lab/terraform-titans
- Repository: https://github.com/rubivssingh281-lab/terraform-titans

## Overview

EcholytiX is a browser-based assistive communication app: patients turn blinks, hand signs, Morse input, or prepared phrases into spoken communication, with phrase history and remote-device support. The sampled App routes users to the communication modes and sends authentication and phrase-history requests to the Express server; the server calls SQLite helpers. README documents sign recognition, caregiver alerts, and remote mode, but their implementation details were not sampled, so only documented subsystem links are shown.

Main entry points: [`src/App.tsx`](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/App.tsx) (App shell), [`server.ts`](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/server.ts) (API and sessions), [`src/components/MorseTranslator.tsx`](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/MorseTranslator.tsx) (Manual Morse), [`src/components/BlinkToText.tsx`](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/BlinkToText.tsx) (Blink Morse)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Communication app"]
  node_app["App shell<br/>[App.tsx]"]
  node_blink["Blink Morse<br/>[BlinkToText.tsx]"]
  node_sign["Sign language"]
  node_morse["Manual Morse"]
  node_translator["Morse mapping<br/>[morse.ts]"]
  node_tts["Phrase speech<br/>[TextToSpeech.tsx]"]
  node_speech["Speech and tones<br/>[sound.ts]"]
  node_sos["Emergency SOS<br/>[SosModal.tsx]"]
  node_sender["Remote sender<br/>[RemoteSender.tsx]"]
  node_receiver["Remote receiver<br/>[RemoteReceiver.tsx]"]
  node_remoteutil["Remote events<br/>[remote.ts]"]
  node_auth["Patient access"]
end

subgraph group_server["Backend services"]
  node_server["API and sessions<br/>[server.ts]"]
end

subgraph group_storage["Persisted data"]
  node_dbhelpers["Database helpers<br/>[database.ts]"]
  node_sqlite[("SQLite records<br/>[database.ts]")]
end

node_patient(("Patient"))
node_caregiver(("Caregiver"))

node_patient -->|"uses"| node_app
node_app -->|"routes to"| node_blink
node_app -->|"routes to"| node_sign
node_app -->|"routes to"| node_morse
node_app -->|"routes to"| node_tts
node_app -->|"opens"| node_sos
node_app -->|"renders"| node_sender
node_app -->|"routes to"| node_receiver
node_app -->|"renders"| node_auth
node_morse -->|"translates"| node_translator
node_blink -->|"speaks and beeps"| node_speech
node_morse -->|"speaks and beeps"| node_speech
node_receiver -->|"speaks and beeps"| node_speech
node_app -->|"requests auth and phrases"| node_server
node_blink -->|"saves phrase"| node_server
node_morse -->|"saves phrase"| node_server
node_sign -.->|"saves phrase"| node_server
node_tts -.->|"saves phrase"| node_server
node_sender -.->|"pairs remotely"| node_server
node_receiver -.->|"receives events"| node_server
node_blink -->|"dispatches events"| node_remoteutil
node_morse -->|"dispatches events"| node_remoteutil
node_remoteutil -->|"posts events"| node_server
node_server -->|"calls data helpers"| node_dbhelpers
node_dbhelpers -->|"reads and writes"| node_sqlite
node_caregiver -.->|"receives alert"| node_sos

click node_app "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/App.tsx"
click node_blink "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/BlinkToText.tsx"
click node_sign "https://github.com/rubivssingh281-lab/terraform-titans/tree/main/src/components"
click node_morse "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/MorseTranslator.tsx"
click node_translator "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/utils/morse.ts"
click node_tts "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/TextToSpeech.tsx"
click node_speech "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/utils/sound.ts"
click node_sos "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/SosModal.tsx"
click node_sender "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/RemoteSender.tsx"
click node_receiver "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/RemoteReceiver.tsx"
click node_remoteutil "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/utils/remote.ts"
click node_auth "https://github.com/rubivssingh281-lab/terraform-titans/tree/main/src/components"
click node_server "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/server.ts"
click node_dbhelpers "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/database.ts"
click node_sqlite "https://github.com/rubivssingh281-lab/terraform-titans/blob/main/database.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_blink,node_sign,node_morse,node_translator,node_tts,node_speech,node_sos,node_sender,node_receiver,node_remoteutil,node_auth toneBlue
class node_server toneAmber
class node_dbhelpers,node_sqlite toneMint
class node_patient,node_caregiver toneIndigo
```

## Components

### Communication app

- [App shell](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/App.tsx): `src/App.tsx`
- [Blink Morse](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/BlinkToText.tsx): `src/components/BlinkToText.tsx`
- [Sign language](https://github.com/rubivssingh281-lab/terraform-titans/tree/main/src/components): `src/components`
- [Manual Morse](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/MorseTranslator.tsx): `src/components/MorseTranslator.tsx`
- [Morse mapping](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/utils/morse.ts): `src/utils/morse.ts`
- [Phrase speech](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/TextToSpeech.tsx): `src/components/TextToSpeech.tsx`
- [Speech and tones](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/utils/sound.ts): `src/utils/sound.ts`
- [Emergency SOS](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/SosModal.tsx): `src/components/SosModal.tsx`
- [Remote sender](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/RemoteSender.tsx): `src/components/RemoteSender.tsx`
- [Remote receiver](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/components/RemoteReceiver.tsx): `src/components/RemoteReceiver.tsx`
- [Remote events](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/src/utils/remote.ts): `src/utils/remote.ts`
- [Patient access](https://github.com/rubivssingh281-lab/terraform-titans/tree/main/src/components): `src/components`

### Backend services

- [API and sessions](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/server.ts): `server.ts`

### Persisted data

- [Database helpers](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/database.ts): `database.ts`
- [SQLite records](https://github.com/rubivssingh281-lab/terraform-titans/blob/main/database.ts): `database.ts`

### Other components

- **Patient**
- **Caregiver**

## Connections

- Patient → App shell: uses
- App shell → Blink Morse: routes to
- App shell → Sign language: routes to
- App shell → Manual Morse: routes to
- App shell → Phrase speech: routes to
- App shell → Emergency SOS: opens
- App shell → Remote sender: renders
- App shell → Remote receiver: routes to
- App shell → Patient access: renders
- Manual Morse → Morse mapping: translates
- Blink Morse → Speech and tones: speaks and beeps
- Manual Morse → Speech and tones: speaks and beeps
- Remote receiver → Speech and tones: speaks and beeps
- App shell → API and sessions: requests auth and phrases
- Blink Morse → API and sessions: saves phrase
- Manual Morse → API and sessions: saves phrase
- Sign language → API and sessions: saves phrase
- Phrase speech → API and sessions: saves phrase
- Remote sender → API and sessions: pairs remotely
- Remote receiver → API and sessions: receives events
- Blink Morse → Remote events: dispatches events
- Manual Morse → Remote events: dispatches events
- Remote events → API and sessions: posts events
- API and sessions → Database helpers: calls data helpers
- Database helpers → SQLite records: reads and writes
- Caregiver → Emergency SOS: receives alert
