How jiteshck/learnkeep works
LearnKeep is an Android learning tracker with a Node.js cloud API. The main user workflow is to capture and organize topics with notes, tags, confidence, links, and attachments; then review topics, practice with generated quizzes, and track study progress. Room provides local topic and quiz-result storage, with reminders scheduled from confidence and optional authenticated cloud sync. The README documents broader UI capabilities than the sampled source shows, so unsampled app wiring is represented cautiously; backend request handling and its external dependencies are grounded in the excerpts.
Main entry points: server.js Backend API · KnowledgeDao.java Topic records · TopicDetailsActivity.java Topic details · MainActivity.java App navigation
Components 29
Android app
- App navigation
app/src/main/java/com/example/learnkeep/MainActivity.java
Learning workflow
- Topic library
app/src/main/java/com/example/learnkeep/TopicsFragment.java - Topic capture
app/src/main/java/com/example/learnkeep/AddKnowledgeActivity.java - Topic details
app/src/main/java/com/example/learnkeep/TopicDetailsActivity.java - Attachment handling
app/src/main/java/com/example/learnkeep/AttachmentAdapter.java - Image preview
app/src/main/java/com/example/learnkeep/FullscreenImageActivity.java - Practice topics
app/src/main/java/com/example/learnkeep/PracticeFragment.java - Quiz session
app/src/main/java/com/example/learnkeep/McqTestActivity.java - Quiz results
app/src/main/java/com/example/learnkeep/McqResultActivity.java - Study statistics
app/src/main/java/com/example/learnkeep/StatsFragment.java - Review reminders
app/src/main/java/com/example/learnkeep/ReminderScheduler.java - Reminder worker
app/src/main/java/com/example/learnkeep/ReminderWorker.java - AI study chat
app/src/main/java/com/example/learnkeep/AiChatBottomSheet.java
Cloud services
- AI client
app/src/main/java/com/example/learnkeep/GeminiService.java - Cloud sync
app/src/main/java/com/example/learnkeep/SyncManager.java - API client
app/src/main/java/com/example/learnkeep/api/ApiClient.java - Backend API
learnkeep-server/server.js - JWT middleware
learnkeep-server/auth.js
Persistence
- Room database
app/src/main/java/com/example/learnkeep/AppDatabase.java - Topic records
app/src/main/java/com/example/learnkeep/KnowledgeDao.java - Quiz records
app/src/main/java/com/example/learnkeep/McqResultDao.java - User model
learnkeep-server/models/User.js - Cloud topics
learnkeep-server/models/Knowledge.js - Cloud quiz results
learnkeep-server/models/McqResult.js
Other components
- Learner
- MongoDB
- Gemini API
- Email provider
- YouTube
Connections 36
- Learner → App navigation: opens app
- App navigation → Topic library: navigates
- Topic library → Topic capture: adds topic
- Topic library → Topic details: opens topic
- Topic details → Attachment handling: manages files
- Topic details → Image preview: previews image
- Topic details → YouTube: opens links
- App navigation → Practice topics: opens practice
- Practice topics → Quiz session: starts quiz
- Quiz session → Quiz results: shows score
- App navigation → Study statistics: opens insights
- Topic capture → Topic records: writes topics
- Topic library → Topic records: reads topics
- Topic details → Topic records: updates topics
- Practice topics → Topic records: reads topics
- Quiz session → Quiz records: saves results
- Quiz results → Quiz records: reads results
- Study statistics → Topic records: reads study data
- Study statistics → Quiz records: reads quiz history
- Topic capture → Review reminders: schedules review
- Review reminders → Reminder worker: enqueues work
- AI study chat → AI client: sends prompts
- AI client → API client: calls API
- Cloud sync → Topic records: reads topics
- Cloud sync → Quiz records: reads results
- Cloud sync → API client: syncs data
- API client → Backend API: sends requests
- Backend API → JWT middleware: checks protected routes
- Backend API → Gemini API: generates content
- Backend API → User model: reads and writes
- Backend API → Cloud topics: syncs topics
- Backend API → Cloud quiz results: syncs results
- User model → MongoDB: persists users
- Cloud topics → MongoDB: persists topics
- Cloud quiz results → MongoDB: persists results
- Backend API → Email provider: sends mail