Metadata-Version: 2.4
Name: bakalari-cli
Version: 0.1.1.1.1
Summary: Terminal timetable viewer for Bakaláři school system
Project-URL: Homepage, https://github.com/axo4xo/bakalari-cli
Project-URL: Repository, https://github.com/axo4xo/bakalari-cli
Project-URL: Issues, https://github.com/axo4xo/bakalari-cli/issues
Author-email: axo4xo <axo@ax4.cz>
License: MIT
License-File: LICENSE
Keywords: bakalari,cli,school,terminal,timetable,tui
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Terminals
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: lxml>=5.0.0
Requires-Dist: requests>=2.31.0
Requires-Dist: textual>=0.40.0
Description-Content-Type: text/markdown

# Bakaláři CLI
<div align=center>

  <img width="800" height="695" alt="image" src="https://github.com/user-attachments/assets/0b44495e-a3b8-4036-8b63-f8782cb89310" />

Terminal timetable viewer for the Bakaláři school system.  
A TUI (Terminal User Interface) application built with [Textual](https://textual.textualize.io/).

</div>

## Installation

The recommended way to install **bakalari-cli** is using [uv](https://docs.astral.sh/uv/) or [pipx](https://github.com/pypa/pipx):

```bash
# Using uv (fastest)
uv tool install bakalari-cli

# Using pipx
pipx install bakalari-cli

# Using standard pip (fallback)
pip install bakalari-cli
```

## Usage

1. Run the application:
   ```bash
   bakalari
   ```

2. Enter your Bakaláři timetable URL, e.g.:
   ```
   https://bakalar.skola.cz/Timetable/Public/Permanent/Class/FF
   ```

3. Navigate the timetable:
   - **Arrow keys**: Move between cells
   - **Shift+Left/Right**: Switch between week types
   - **R**: Refresh
   - **Q**: Quit

## URL Format

```
https://<school_bakalari_url>/Timetable/Public/<Type>/<EntityType>/<ID>
```

| Type | Description |
|------|-------------|
| `Permanent` | Fixed schedule (stálý rozvrh) |
| `Actual` | Current week with changes |
| `Next` | Next week |

| EntityType | Description |
|------------|-------------|
| `Class` | Class timetable |
| `Teacher` | Teacher timetable |
| `Room` | Room timetable |

## Development

This project uses [uv](https://docs.astral.sh/uv/) for development.

```bash
# Clone the repository
git clone https://github.com/axo4xo/bakalari-cli.git
cd bakalari-cli

# Install dependencies and setup environment
uv sync

# Run the app
uv run bakalari

# Run tests
uv run pytest
```

### Textual Development
To run with the Textual developer console:
```bash
uv run textual run --dev bakalari_cli.app:BakalariApp
```

