Metadata-Version: 2.4
Name: flashcard-cli
Version: 0.0.1
Summary: A terminal-based flashcard system.
Author-email: 000xs <000xs@users.noreply.github.com>
Project-URL: Homepage, https://github.com/000xs/flashcard-cli
Project-URL: Bug Tracker, https://github.com/000xs/flashcard-cli/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: typer[all]
Requires-Dist: rich
Requires-Dist: textual

# Flashcard CLI - Your Terminal-Based Learning Companion

Flashcard CLI is a powerful and versatile command-line tool designed to help you learn and memorize information effectively using flashcards. Whether you're a student, a professional, or simply someone who enjoys learning, Flashcard CLI provides a convenient and engaging way to study and review your knowledge.

![alt text](image.png)
## Key Features

*   **Easy to Use:** Simple and intuitive command-line interface.
*   **Customizable:** Create and manage your own flashcard decks.
*   **Interactive Learning:** Engaging learning sessions with performance tracking.
*   **Terminal-Based:** Study without distractions, right in your terminal.

## Installation

```bash
pip install flashcard-cli
```

(Image: Screenshot of the installation process)

## Usage

### Adding Flashcards

```bash
flashcard add
```

This command will prompt you to enter a question and answer for your flashcard. The flashcard will be saved to `flashcards.json` by default.

![alt text](image-1.png)

### Starting a Learning Session

```bash
flashcard start
```

This command will start a learning session, presenting each flashcard in a visually appealing card-like panel. The system will wait for you to press Enter to reveal the answer, then ask if you got it right. After all flashcards, it will show a summary of your performance.

![alt text](image-2.png)

### Other Commands

*   `flashcard list`: List all flashcards in the current deck.
*   `flashcard edit <id>`: Edit a specific flashcard,
*   `flashcard delete <id>`: Delete a specific flashcard,
*   `flashcard import <file>`: Import flashcards from a JSON file.
*   `flashcard export <file>`: Export flashcards to a JSON file.

## Configuration

Flashcard CLI stores flashcards in a JSON file (`flashcards.json` by default). You can customize the location of this file by setting the `FLASHCARD_DB` environment variable.

## Troubleshooting

*   **Flashcards not loading:** Ensure that the `flashcards.json` file exists and is in the correct format.
*   **Command not found:** Make sure that the Flashcard CLI is installed correctly and that the `flashcard` command is in your system's PATH.

## Development

To install in editable mode:

```bash
pip install -e .
```

To run the application directly:

```bash
python -m flashcard_cli.main
```

## Publishing to PyPI

To publish the package to PyPI, you need to build the package and then upload it to PyPI.

### Build the Package

```bash
python -m build
```

This will create a `dist` directory with the built package.

### Upload to PyPI

```bash
twine upload dist/*
```

**Note:** You will need to have `twine` installed (`pip install twine`) and have a PyPI account.

## GitHub Workflow for PyPI Release

To automate the release process to PyPI, you can set up a GitHub workflow. See `.github/workflows/release.yml` for the workflow configuration.

**Note:**

*   You will need to configure a PyPI API token as a secret in your GitHub repository settings.

## Contributing

Contributions are welcome! Please submit a pull request with your changes.

## License

This project is licensed under the MIT License.

**Note:** Replace the "(Image: ...)" placeholders with actual image links or references in your README file. You can store the images in a separate "images" folder and link to them from the README.
