How ligphidonk/academic-figure-generator works
Academic Figure Generator is a local web application for organizing research projects, analyzing uploaded papers into figure prompts, and generating or editing academic illustrations. Its main workflow runs from the browser through FastAPI document parsing and Claude-assisted prompt generation, then through image generation and local storage; project management, color schemes, and quick generation are additional product branches. The README documents the end-to-end stages, while source excerpts confirm app registration, image generation/storage, and selected frontend calls; links involving unsampled routes and services are marked unverified.
Main entry points: main.py FastAPI application · App.tsx Application routes · database.py SQLite metadata · api.ts API client
Components 27
Browser application
- Application routes
frontend/src/App.tsx - Project management
frontend/src/pages/Projects.tsx - Project workspace
frontend/src/pages/ProjectWorkspace.tsx - Quick generation
frontend/src/pages/Generate.tsx - Color scheme UI
frontend/src/pages/ColorSchemes.tsx - Settings UI
frontend/src/pages/Settings.tsx - API client
frontend/src/lib/api.ts - Image downloads
frontend/src/lib/blob.ts - UI primitives
frontend/src/components/ui
API and workflow
- FastAPI application
backend/app/main.py - Project routes
backend/app/api/v1/projects.py - Document routes
backend/app/api/v1/documents.py - Prompt routes
backend/app/api/v1/prompts.py - Image routes
backend/app/api/v1/images.py - Color scheme routes
backend/app/api/v1/color_schemes.py - Document parsing
backend/app/services/document_service.py - OCR processing
backend/app/services/ocr_service.py - Prompt management
backend/app/services/prompt_service.py
AI services
- Claude analysis
backend/app/services/claude_code_service.py - Image generation
backend/app/services/image_service.py - Prompt templates
backend/app/core/prompts
Persistence and files
- SQLite metadata
backend/app/models/database.py - Local file storage
backend/app/services/local_storage_service.py - Local data files
backend/app/services/local_storage_service.py
Other components
- Researcher
- Claude Agent SDK
- NanoBanana API
Connections 37
- Researcher → Application routes: uses
README.md - Application routes → Project management: routes to
frontend/src/App.tsx - Application routes → Project workspace: routes to
frontend/src/App.tsx - Application routes → Quick generation: routes to
frontend/src/App.tsx - Application routes → Color scheme UI: routes to
frontend/src/App.tsx - Application routes → Settings UI: routes to
frontend/src/App.tsx - Project management → API client: requests
frontend/src/pages/Projects.tsx - Project workspace → API client: requests
frontend/src/pages/ProjectWorkspace.tsx - Quick generation → API client: requests
frontend/src/pages/Generate.tsx - Color scheme UI → API client: requests
frontend/src/pages/ColorSchemes.tsx - Project workspace → Image downloads: downloads
frontend/src/pages/ProjectWorkspace.tsx - Project management → UI primitives: renders
frontend/src/pages/Projects.tsx - Project workspace → UI primitives: renders
frontend/src/pages/ProjectWorkspace.tsx - Quick generation → UI primitives: renders
frontend/src/pages/Generate.tsx - Color scheme UI → UI primitives: renders
frontend/src/pages/ColorSchemes.tsx - API client → FastAPI application: HTTP requests
README.md - FastAPI application → Project routes: registers
backend/app/main.py - FastAPI application → Document routes: registers
backend/app/main.py - FastAPI application → Prompt routes: registers
backend/app/main.py - FastAPI application → Image routes: registers
backend/app/main.py - FastAPI application → Color scheme routes: registers
backend/app/main.py - Document routes → Document parsing: parses papers
README.md - Document parsing → OCR processing: uses OCR
- Prompt routes → Claude analysis: generates prompts
README.md - Claude analysis → Claude Agent SDK: analyzes with
README.md - Prompt routes → Prompt management: manages prompts
README.md - Claude analysis → Prompt templates: uses templates
- Image routes → Image generation: generates images
backend/app/api/v1/images.py - Image generation → NanoBanana API: calls
backend/app/services/image_service.py - Image routes → Local file storage: stores images
backend/app/api/v1/images.py - Local file storage → Local data files: reads and writes
backend/app/services/local_storage_service.py - FastAPI application → SQLite metadata: initializes tables
backend/app/main.py - Image routes → SQLite metadata: persists metadata
README.md - Project routes → SQLite metadata: persists projects
README.md - Document routes → SQLite metadata: persists documents
README.md - Prompt routes → SQLite metadata: persists prompts
README.md - Color scheme routes → SQLite metadata: persists schemes