A complete Full‑Stack Spaced Repetition Learning Platform built using:
- Flask (Python) for backend\
- HTML + CSS + JS for frontend\
- JSON for data storage\
- Flashcards + Quiz + Stats Tracking
Each flashcard automatically adjusts difficulty using:
mastery_score = correct_count - wrong_count
Meaning:
- ❗ Negative score → Very weak → Shown first\
⚠️ Low score → Shown frequently\- ✔ High score → Shown rarely\
- ⭐ Very high → Nearly mastered
Both Flashcard mode and Quiz mode update mastery score in real time.
- 📝 C++
- 🌐 Computer Networks
- 🗄️ DBMS
- 📖 English Vocabulary
Each domain has its own JSON under /data/.
/AI-memory-coach
│
├── /src
│ ├── flashcards.json
│ ├── users.json
│ ├── auth.py
│ ├── server.py
│ └── flashcards.py
├── /static # Frontend JS/CSS
│ ├── script.js
│ └── style.css
│
├── /templates
│ └── index.html # Main UI
│
├── /data # Flashcard data
│ ├── users/user1/stats.json #stats of every user saved her
│ ├── cpp.json
│ ├── english.json
│ ├── dbms.json
│ └── cn.json
│
|── .gitignore
└── README.md
git clone https://github.com/<your-username>/AI-memory-coach.git
cd AI-memory-coachpython -m venv venvvenv\Scripts\activatesource venv/bin/activateFlask==3.0.2
Flask-Cors==4.0.0Start the Flask server:
python src/server.pyThen open:
http://localhost:5000
🎉 You now have the full web app running locally!
- Left side: Flashcards + Quiz\
- Right side: Live stats panel\
- Stats refresh automatically
Each card contains:
id
question
options[]
answer_index
correct_count
wrong_count
Whenever a user answers:
correct_count++
wrong_count++
lower score → shown first
The backend sorts by mastery when sending flashcards.
- Random order\
- Shows feedback\
- Updates stats after each question\
- Final score displayed\
- Stats saved to
/user/{user}/stats.json
Open any file in /data/, example dbms.json:
{
"id": "20",
"question": "What does a primary key ensure?",
"options": ["Uniqueness", "Speed", "Indexing", "Duplicate rows allowed"],
"answer_index": 0
}Just add new objects --- the system picks them up automatically.
- HTML\
- CSS (custom responsive layout)\
- JavaScript
- Python\
- Flask\
- JSON storage
Pull requests are welcome!
You can contribute:
- New flashcard sets\
- Better UI\
- Leaderboard system\
- Account system upgrade
If you like the project, star ⭐ the GitHub repo!
Feel free to share suggestions