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.0.tar.gz (26.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.0-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

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

Hashes for open_anamnesis-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b6b77b27c68a99c0485e61ca7b4c4a5201653d3ecf9de88c144a24c8b57270fa
MD5 0cd1f47d0bbe2e16447008641bedd69d
BLAKE2b-256 ae08d762bbe34e920e8172623d0321906d39812a8084b42e14a866e7f9489581

See more details on using hashes here.

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

Hashes for open_anamnesis-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e493213c2ef5b895454faedcefc333d0b64728c1582e10c5798472757b9c6b2
MD5 42ad76e20552ffbfbf4c6126475d51e2
BLAKE2b-256 5492899d3b3a6bec2c38393dc770a322b2b95a267a022d80015b8498b2392a09

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