How feggall/nauchput_api works
НаучПуть is a FastAPI backend for student–supervisor profiles, research-interest matching, applications, and supervisor email verification. The principal workflow is clients creating and updating profiles, finding matches, and submitting applications that supervisors can review and accept or reject. The API also exposes health checks and protected routes. Source excerpts show SQL executed by route handlers through database sessions and email verification through SMTP; omitted sections limit certainty about some route details and internal wiring.
Main entry points: nauchput_API.py FastAPI routes · database.py DB sessions · email_service.py Verification email · schemas.py Request schemas
Components 15
API layer
- FastAPI routes
nauchput_API.py - API-key check
nauchput_API.py - Request schemas
schemas.py - Health checks
nauchput_API.py
Product workflows
- Student profiles
nauchput_API.py - Interest updates
nauchput_API.py - Student matches
nauchput_API.py - Supervisor profiles
nauchput_API.py - Applications
nauchput_API.py - Email verification
nauchput_API.py
Persistence and email
- DB sessions
database.py - MySQL database
- Verification email
email_service.py - SMTP server
Other components
- API client
Connections 20
- API client → FastAPI routes: requests
- FastAPI routes → API-key check: checks key
- FastAPI routes → Request schemas: validates input
- FastAPI routes → Health checks: dispatches
- FastAPI routes → Student profiles: dispatches
- FastAPI routes → Interest updates: dispatches
- FastAPI routes → Student matches: dispatches
- FastAPI routes → Supervisor profiles: dispatches
- FastAPI routes → Applications: dispatches
- FastAPI routes → Email verification: dispatches
- Health checks → DB sessions: checks connection
- Student profiles → DB sessions: queries
- Interest updates → DB sessions: reads/writes
- Student matches → DB sessions: queries
- Supervisor profiles → DB sessions: reads/writes
- Applications → DB sessions: reads/writes
- Email verification → DB sessions: reads/writes
- Email verification → Verification email: sends code
- DB sessions → MySQL database: queries
- Verification email → SMTP server: sends email