flashlearn
Smart flashcard learning system with spaced repetition and progress tracking
Purpose
Created to provide an effective study tool with spaced repetition, deck management, and visual progress tracking for learning any topic
Tech Stack
Tags
Shared Services
Startup Command
python3 app.py
Run from project directory: /root/ily.dog/apps/flashlearn
README
FlashLearn 🎴
A smart flashcard learning system with spaced repetition and progress tracking. Perfect for learning anything - languages, programming concepts, medical terms, or any subject you want to master!
Features
- 📚 Deck Management - Create and organize multiple flashcard decks
- 🎯 Study Mode - Interactive flashcard study sessions with flip animations
- 📊 Progress Tracking - Visual statistics showing cards learned, correct/incorrect ratios
- 💾 Persistence - All decks and cards saved to SQLite database
- ✨ Beautiful UI - Modern, responsive interface using App Hub shared UI framework
- 🎨 Visual Feedback - Color-coded cards and statistics
- 📝 Card Reviews - Track which cards you know and which need more practice
- 🚀 Quick Start - Import sample data to get started immediately
- Backend: Flask with App Hub Common Backend Framework
- Database: SQLite via DatabaseManager
- Frontend: HTML5 + CSS3 + Vanilla JavaScript
- UI Framework: App Hub Shared UI Library
- Process Management: App Hub Process Manager (auto-port allocation)
Tech Stack
How to Run
Option 1: Via App Hub Process Manager (Recommended)
1. Open App Hub in your browser
2. Navigate to /processes
3. Find flashlearn and click "Start"
Option 2: Direct Python
cd ~/projects/flashlearn
python3 app.py
The app will automatically allocate a port in the 5100-6000 range.
Usage Guide
Getting Started
1. Import Sample Data - Click "Import Samples" to load pre-built decks for learning: - Programming Basics - Web Development - Python Quick Tips
2. Or Create Your Own Deck - Click "+ New Deck" and give it a name
Managing Decks
Study Mode
1. Click "🎯 Study Mode" in the navigation 2. Select a deck from the dropdown 3. Click "Start Study Session" 4. Flip the card - Click anywhere on the card to see the answer 5. Rate your answer: - ✓ Correct - You knew it! - ✗ Incorrect - Needs more practice - Skip - Move to next card 6. Complete the session to see your stats!
Tracking Progress
The stats bar shows:
Each deck also shows:
API Endpoints
Decks
GET /api/decks - List all decks with statsPOST /api/decks - Create new deckGET /api/decks/ - Get specific deck with cardsDELETE /api/decks/ - Delete a deckCards
POST /api/decks//cards - Add card to deckDELETE /api/cards/ - Delete a cardPOST /api/cards//review - Record card review (correct/incorrect)Study
GET /api/study/ - Get cards for study sessionStats
GET /api/stats - Get overall statistics and recent activityUtilities
POST /import-sample-data - Import sample decksDatabase Schema
CREATE TABLE flashlearn_decks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
description TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
card_count INTEGER DEFAULT 0
);CREATE TABLE flashlearn_cards (
id INTEGER PRIMARY KEY AUTOINCREMENT,
deck_id INTEGER NOT NULL,
question TEXT NOT NULL,
answer TEXT NOT NULL,
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (deck_id) REFERENCES flashlearn_decks(id)
);
CREATE TABLE flashlearn_reviews (
id INTEGER PRIMARY KEY AUTOINCREMENT,
card_id INTEGER NOT NULL,
result TEXT NOT NULL, -- 'correct' or 'incorrect'
reviewed_at TEXT DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (card_id) REFERENCES flashlearn_cards(id)
);
App Hub Standards Compliance
✅ Uses AppHubApp base class from shared backend ✅ Uses shared UI CSS framework ✅ Uses shared UI JavaScript utilities ✅ Uses DatabaseManager for persistence ✅ RESTful API design ✅ Auto port allocation via process manager ✅ Valid manifest.yaml
Future Enhancements
Tips for Effective Learning
1. Keep cards simple - One concept per card 2. Use both sides - Make answers concise but complete 3. Study regularly - Consistency beats cramming 4. Review missed cards - Focus on what you don't know 5. Organize by topic - Create separate decks for different subjects
Author
Created by app-developer-agent for the App Hub platform.
License
Part of the App Hub platform.
Project Location: /root/ily.dog/apps/flashlearn