← Back to work
May 2026 - PresentDeveloper (CS50x capstone project)

Taraka Sutra: Astronomy Multi-Catalog Identifier Matcher

An asynchronous Python web application that resolves name-based celestial object identifiers across mismatched external catalogues - SIMBAD and the NASA Exoplanet Archive - built as a CS50x capstone and extended well past the course's scope.

FastAPIAsync PythonPostgreSQLThree.js
+5 moreSQLAlchemyAlembicGemini APIADQL / TAPUvicorn
Taraka Sutra: Astronomy Multi-Catalog Identifier Matcher preview

Asynchronous web architecture

FastAPI, Uvicorn, and httpx execute name-based celestial object resolutions against external astronomical endpoints.

Architectural decoupling

A strict separation between deterministic SQL/ADQL resolution pipelines and non-deterministic presentation layers, so the LLM narrative engine (Gemini API) and the Three.js 3D coordinate visualisation can never modify the underlying scientific data.

State machine & fault tolerance

An explicit five-state resolution engine - RESOLVED, PARTIAL, AMBIGUOUS, UNRESOLVED, LOOKUP_FAILED - backed by a dual-tier TTL cache (14 days for verified queries, 1 hour for network/transport failures) to isolate upstream outages gracefully.

Authentication & data protection

Session-based cookie authentication with bcrypt password hashing, CSRF token verification on mutating routes, and Fernet symmetric encryption for personal API keys at rest.

Database modelling & traffic control

An asynchronous relational schema via SQLAlchemy and Alembic migrations, with sliding-window rate limiting via event logging to protect upstream services and govern API consumption.