A dbt-like platform for building and managing flashcard projects
Project description
Open Anamnesis
Open-source flashcards as code. Build and manage flashcard projects with dependency management, validation, and a web-based learning interface.
Example
- Website Generated From Example: Example Project
Features
- Structured Decks: Organize flashcards with dependency management
- Validation: Compile and validate YAML/JSON for correctness
- Web Interface: Auto-generated learning platform with Learn and Test modes
- Dependencies: Learn in the correct order with prerequisite tracking
Quick Start
# Install
pip install open-anamnesis
# Initialize project
anamnesis init my_project
cd my_project
# Validate
anamnesis compile
# Build and launch
anamnesis build
# Visit http://127.0.0.1:5000
Project Structure
my_project/
├── _project.yml # name, description, version
├── decks/
│ └── deck_name/
│ ├── _deck.yml # display_name, description, depends_on
│ ├── card_name.json # card front and back
│ └── card_name.yml # card depends_on
└── build/ # generated files
Card Schema
Each card consists of two files:
card_name.json:
{
"display_name": "Card Title",
"front": "Question",
"back": "Answer"
}
card_name.yml:
depends_on: other_card_id # or null for first card
Character Limits
display_name: 60 charactersfront: 200 charactersback: 500 characters
Commands
anamnesis init [PROJECT_NAME] # Initialize new project
anamnesis compile [-d PROJECT_DIR] # Validate project
anamnesis build [-d DIR] [-p PORT] # Build and serve (default: port 5000)
Validation
The compiler validates:
- Syntax: Valid YAML and JSON
- Required fields: display_name, front, back for all cards
- Character limits: display_name (60), front (200), back (500)
- Unique IDs: Card IDs must be unique within each deck
- Dependencies:
- Decks can depend on multiple decks
- Cards depend on exactly one card (or null for first card)
- Cards cannot reference cards in other decks
- Each deck must have exactly one first card
Development
See docs/GUIDE.md for development setup and docs/ARCHITECTURE.md for system overview.
License
MIT License - see LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open_anamnesis-0.1.0.tar.gz.
File metadata
- Download URL: open_anamnesis-0.1.0.tar.gz
- Upload date:
- Size: 26.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6b77b27c68a99c0485e61ca7b4c4a5201653d3ecf9de88c144a24c8b57270fa
|
|
| MD5 |
0cd1f47d0bbe2e16447008641bedd69d
|
|
| BLAKE2b-256 |
ae08d762bbe34e920e8172623d0321906d39812a8084b42e14a866e7f9489581
|
File details
Details for the file open_anamnesis-0.1.0-py3-none-any.whl.
File metadata
- Download URL: open_anamnesis-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e493213c2ef5b895454faedcefc333d0b64728c1582e10c5798472757b9c6b2
|
|
| MD5 |
42ad76e20552ffbfbf4c6126475d51e2
|
|
| BLAKE2b-256 |
5492899d3b3a6bec2c38393dc770a322b2b95a267a022d80015b8498b2392a09
|