How gauravbatule/astrix works
Astrix is a browser-based Vedic/KP astrology consultation app. Users enter birth details and a location to calculate and view a chart, then ask questions by text or voice; the Flask API sends consultation context to Groq and returns text and, when available, audio. The README also describes daily horoscopes and conversation memory. The excerpts show the chart calculations and chat/voice endpoints, but not all frontend wiring or backend routes, so uncertain links are omitted; no persistent store is evidenced.
Main entry points: main.js Astrology UI · app.py Chat endpoint · astro.js Chart calculations
Components 21
Browser client
- Astrology UI
static/main.js - Birth details
static/main.js - Chat and voice
static/main.js - Chart display
static/main.js
Astrology calculations
- Input parsing
static/astro.js - Chart calculations
static/astro.js - KP and houses
static/astro.js - Vimshottari dasha
static/astro.js - Chart wheel
static/astro.js
Flask services
- Flask app
app.py - Chat endpoint
app.py - AI chat request
app.py - Reply parsing
app.py - Speech endpoints
app.py - Transcription
app.py - Speech synthesis
app.py
External services
- Groq chat
- Groq speech recognition
- Groq speech synthesis
- OpenStreetMap Nominatim
Other components
- User
Connections 25
- User → Astrology UI: uses
- Astrology UI → Birth details: opens
- Birth details → Input parsing: submits
- Input parsing → Chart calculations: normalizes for
- Birth details → OpenStreetMap Nominatim: searches location
- Astrology UI → Chart calculations: calculates chart
- Chart calculations → KP and houses: provides positions
- Chart calculations → Vimshottari dasha: provides Moon position
- Astrology UI → Chart wheel: generates wheel
- Astrology UI → Chart display: renders results
- User → Chat and voice: asks
- Chat and voice → Chat endpoint: posts message
- Flask app → Chat endpoint: routes
- Chat endpoint → AI chat request: invokes
- AI chat request → Groq chat: requests completion
- Chat endpoint → Reply parsing: parses reply
- Reply parsing → Chat and voice: returns messages
- Chat and voice → Speech endpoints: posts voice audio
- Flask app → Speech endpoints: routes
- Speech endpoints → Transcription: transcribes via
- Transcription → Groq speech recognition: sends audio
- Chat endpoint → Speech synthesis: requests audio
- Speech endpoints → Speech synthesis: requests audio
- Speech synthesis → Groq speech synthesis: sends text
- Speech synthesis → Chat and voice: returns audio