How anushkvijay/hldflashcards works
FlashSwipe turns an interview-prep URL into swipeable revision cards, then records each learner’s card status. The main flow runs from the web app through the API’s deck routes, scraping, AI generation, and persistence; learners can then browse decks and update progress. The README also describes offline caching and selectable mock, Ollama, and Groq providers. Some frontend and provider wiring is represented using SOURCE INDEX references; unsampled implementation details are not inferred.
Main entry points: index.ts Provider selection · deckService.ts Deck workflow · decks.ts Deck routes · ollamaProvider.ts Ollama provider
Components 25
Web experience
- Web application
apps/web/src/main.tsx - Deck home
apps/web/src/pages/HomePage.tsx - Swipe deck
apps/web/src/pages/DeckPage.tsx - Flashcard display
apps/web/src/components/FlashCard.tsx - API client and cache
apps/web/src/lib/api.ts
API and workflows
- Fastify application
apps/api/src/app.ts - Deck routes
apps/api/src/routes/decks.ts - Deck workflow
apps/api/src/services/deckService.ts - URL scraper
apps/api/src/services/scraperService.ts - Progress service
apps/api/src/services/progressService.ts - API configuration
apps/api/src/lib/config.ts
Content generation
- Provider selection
apps/api/src/ai/index.ts - AI provider contract
apps/api/src/ai/provider.ts - Prompt builder
apps/api/src/ai/promptBuilder.ts - Ollama provider
apps/api/src/ai/ollamaProvider.ts - Groq provider
apps/api/src/ai/groqProvider.ts - Mock provider
apps/api/src/ai/mockProvider.ts
Persistence and contracts
- Shared data schemas
packages/shared/src/index.ts - Prisma client
apps/api/src/lib/prisma.ts - SQLite database
apps/api/prisma/schema.prisma
Other components
- Learner
- Study material site
- Ollama service
- Groq service
- Browser offline cache
Connections 32
- Learner → Web application: uses
README.md - Web application → Deck home: renders
apps/web/src/main.tsx - Web application → Swipe deck: renders
apps/web/src/main.tsx - Deck home → API client and cache: requests decks
apps/web/src/pages/HomePage.tsx - Swipe deck → API client and cache: loads and updates
apps/web/src/pages/DeckPage.tsx - Swipe deck → Flashcard display: renders
apps/web/src/pages/DeckPage.tsx - API client and cache → Browser offline cache: reads and writes
apps/web/src/lib/api.ts - API client and cache → Deck routes: calls API
apps/web/src/lib/api.ts - Fastify application → Deck routes: registers routes
apps/api/src/app.ts - Fastify application → API configuration: reads settings
apps/api/src/app.ts - Deck routes → Deck workflow: handles deck requests
apps/api/src/routes/decks.ts - Deck routes → Progress service: updates status
apps/api/src/routes/decks.ts - Deck routes → Shared data schemas: validates requests
apps/api/src/routes/decks.ts - Deck workflow → URL scraper: scrapes URL
apps/api/src/services/deckService.ts - URL scraper → Study material site: fetches content
apps/api/src/services/scraperService.ts - Deck workflow → Provider selection: creates provider
apps/api/src/services/deckService.ts - Deck workflow → Prisma client: persists and reads decks
apps/api/src/services/deckService.ts - Deck workflow → Shared data schemas: uses shared types
apps/api/src/services/deckService.ts - Progress service → Prisma client: updates card
apps/api/src/services/progressService.ts - Progress service → Deck workflow: maps card row
apps/api/src/services/progressService.ts - Prisma client → SQLite database: accesses
- Provider selection → API configuration: selects from config
apps/api/src/ai/index.ts - Provider selection → Mock provider: selects provider
apps/api/src/ai/index.ts - Provider selection → Ollama provider: selects provider
apps/api/src/ai/index.ts - Provider selection → Groq provider: selects provider
apps/api/src/ai/index.ts - Mock provider → AI provider contract: implements
apps/api/src/ai/mockProvider.ts - Ollama provider → AI provider contract: implements
apps/api/src/ai/ollamaProvider.ts - Groq provider → AI provider contract: implements
apps/api/src/ai/groqProvider.ts - Ollama provider → Prompt builder: builds prompts
apps/api/src/ai/ollamaProvider.ts - Ollama provider → Ollama service: sends generation request
apps/api/src/ai/ollamaProvider.ts - Groq provider → Groq service: sends generation request
- Provider selection → Shared data schemas: uses shared types