# ๐Ÿ” Caesar Cipher A beginner-friendly Python program that encodes messages with the Caesar cipher. ## ๐Ÿ“š Table of Contents - [Overview](#-overview) - [Requirements](#-requirements) - [Setup](#-setup) - [Run](#-run) - [Tests](#-tests) - [License](#-license) - [Links](#-links) ## ๐Ÿงญ Overview The Caesar cipher shifts every letter by a fixed number of places (with a shift of 3, `E` becomes `H`). This project, from Udemy's *100 Days of Code: The Complete Python Pro Bootcamp* (Day 8), finds letter positions with `list.index` and wraps around the alphabet with the modulo operator. Part 1 covers encryption; decryption and a combined program follow in later parts. Code lives in `src/`, tests in `tests/`, docs in `docs/`. ## ๐Ÿ“‹ Requirements - Python 3.13 or newer - `pytest` (development only; no runtime dependencies) - Optional: [Doxygen](https://www.doxygen.nl/) to build the API docs ## ๐Ÿ› ๏ธ Setup Create and activate a local virtual environment, then upgrade pip and install the project: ```bash python -m venv .venv ``` Activate it: ```bash # Linux / macOS source .venv/bin/activate # Git Bash on Windows source .venv/Scripts/activate ``` ```powershell # Windows PowerShell .venv\Scripts\Activate.ps1 ``` ```bash python -m pip install --upgrade pip python -m pip install -e ".[dev]" ``` ## โ–ถ๏ธ Run ```bash python -m caesar_cipher ``` or, after installation, `caesar-cipher`. ## ๐Ÿงช Tests ```bash python -m pytest ``` Build the API docs with `doxygen Doxyfile` (output in `docs/doxygen/html`). ## ๐Ÿ“„ License GNU AGPL-3.0 โ€“ see [LICENSE](LICENSE). ## ๐Ÿ”— Links - [Repository](https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code) - [Documentation](docs/index.md) - [Issue tracker](https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code/008-caesar_cipher/issues)