feat: AI-generated study notes and topic summaries from interview documents
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Epic
Part of #25 — Study Tools
## Problem
Users need a concise, topic-structured summary of uploaded documents they can scan quickly before an interview. Currently they must re-read the raw file or rely on the interview chat to surface information on demand.
## Impact
Structured notes with key bullet points per topic reduce time-to-readiness significantly. A persistable, scannable summary is also a natural complement to flashcards — notes for first-pass learning, cards for active recall.
## Proposed Code (High Level)
**Backend**
```python
# backend/app/routers/study.py
POST /study/notes
body: { job_id: int, doc_id: int | None, focus_areas: list[str] | None }
# 1. Retrieve chunks (full doc, or filtered by focus_areas via semantic search)
# 2. Prompt Claude:
# "Produce structured study notes in Markdown.
# Use ## headings per major topic. 3-5 bullet points each.
# End with a ## Key Takeaways section."
# 3. Stream response via SSE (same pattern as interview_chat_service.py)
# 4. Persist final markdown to StudyNotes on stream end
GET /study/notes?job_id=&doc_id= # fetch saved notes
```
**New DB model**
```python
class StudyNotes(Base):
id, job_id (FK), doc_id (FK nullable), focus_areas_json,
content_markdown (Text), created_at, updated_at
```
**Frontend — Study Hub**
- Render with `react-markdown` (minimal dep, or already present)
- Streaming display while generating
- "Regenerate" and "Copy" action buttons
## Functionality Impact
- SSE streaming already implemented in `interview_chat_service.py` — same pattern
- Notes scoped per job + doc, no cross-contamination
- Markdown rendering is stateless — no new infrastructure
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.