Skip to main content

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

Python 3.8+ License

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 characters
  • front: 200 characters
  • back: 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open_anamnesis-0.1.2.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open_anamnesis-0.1.2-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

Details for the file open_anamnesis-0.1.2.tar.gz.

File metadata

  • Download URL: open_anamnesis-0.1.2.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for open_anamnesis-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2c1e603417f5883ec3f0158725408af902ac5f48593568ff2e872241befbf4f8
MD5 d6b8d6584c001c83c59d36b4fa1ccaf9
BLAKE2b-256 29e2b658a8abba191e7aa2d12f694f0fbff697965c57f676b52c99785d604d8e

See more details on using hashes here.

File details

Details for the file open_anamnesis-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: open_anamnesis-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 42.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for open_anamnesis-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 75aed7b065acf4a9e2fc0d961140352921cfc54da823e5b0191dc4fc5f627504
MD5 35f8cf80cd6e8bf4f084620d06643d63
BLAKE2b-256 719115feaf594dc5c35f51806a0fbe02c6ad3dea143a9d3dcd50850224ee1e66

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page