Skip to content

Commit 739f5e5

Browse files
committed
docs: Add animated headers and badges to all documentation files
Complete documentation overhaul for docs/en/ and docs/ru/: Animated Elements Added: - Waving gradient headers for all docs pages - Typing SVG animations with contextual messages - Dynamic badges with for-the-badge style - Technology-specific badges (pytest, SQLite, Alembic, Docker, etc.) - Mermaid diagrams in overview.md for data flow visualization - Interactive tables and collapsible sections - Icon-based feature showcases Files Updated (26 total): Russian docs (docs/ru/): index.md - Quick start cards + ADR list overview.md - Sequence diagram + detailed flow table architecture.md - Component diagram setup-local.md - Step badges setup-docker.md - Docker badges config.md - Environment variable badges database.md - SQLite + Alembic badges logging.md - Log files badges usage.md - Commands + workflow badges tests.md - pytest + coverage badges troubleshooting.md - Solutions badges development.md - Dev tools badges screenshots.md - Gallery badges English docs (docs/en/): All corresponding files with matching styling Design Principles: - Consistent color schemes across all pages - Matching badges for related content - Professional animated headers - Easy navigation with anchor links - GitHub-style callouts maintained Quality Checks Passed: - Pre-commit hooks: all passed - Formatting: consistent - No linting errors
1 parent ebd36b5 commit 739f5e5

26 files changed

Lines changed: 564 additions & 88 deletions

docs/en/architecture.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
1-
# Architecture
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=120&section=header&text=Architecture&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
<p align="center">
6+
<img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=18&duration=3000&pause=1000&center=true&vCenter=true&width=500&lines=Clean+Architecture;Layered+Design;Modular+System" alt="Typing SVG" />
7+
</p>
8+
9+
[![Architecture](https://img.shields.io/badge/Pattern-Clean%20Architecture-blue?style=for-the-badge)](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
10+
[![Layers](https://img.shields.io/badge/Layers-6-green?style=for-the-badge)](#layers)
11+
[![Mermaid](https://img.shields.io/badge/Diagrams-Mermaid-orange?style=for-the-badge)](#overall-component-diagram)
12+
13+
</div>
14+
15+
## 📋 About
216

317
This document describes the high level architecture of InvoiceFlowBot.
418

5-
## Layers
19+
## 📦 Layers
620

721
The project is split into several layers:
822

docs/en/config.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
# ⚙️ Configuration
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,16,20&height=120&section=header&text=Configuration&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
[![dotenv](https://img.shields.io/badge/.env-Configuration-blue?style=for-the-badge)](https://github.com/theskumar/python-dotenv)
6+
[![pydantic](https://img.shields.io/badge/Pydantic-Settings-green?style=for-the-badge&logo=pydantic)](https://docs.pydantic.dev/)
7+
[![Variables](https://img.shields.io/badge/Env%20Vars-11-orange?style=for-the-badge)](#required-variables)
8+
9+
</div>
10+
11+
## 📋 About Configuration
212

313
All settings live in environment variables. `config.py` loads `.env` with `os.getenv`, so updating the file and restarting the process is enough to apply changes.
414

docs/en/database.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
# 🗄️ Database
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=120&section=header&text=Database&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
[![SQLite](https://img.shields.io/badge/Database-SQLite-blue?style=for-the-badge&logo=sqlite&logoColor=white)](https://www.sqlite.org/)
6+
[![Alembic](https://img.shields.io/badge/Migrations-Alembic-green?style=for-the-badge)](https://alembic.sqlalchemy.org/)
7+
[![WAL](https://img.shields.io/badge/Mode-WAL-orange?style=for-the-badge)](#schema)
8+
9+
</div>
10+
11+
## 📋 About Database
212

313
InvoiceFlowBot relies on SQLite, a lightweight file-based database. By default data is stored in `data.sqlite` at the project root (or inside the container). Override the path with `INVOICE_DB_PATH` if needed.
414

docs/en/development.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1-
# Development Guide
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,16,20&height=120&section=header&text=Development+Guide&fontSize=40&animation=fadeIn"/>
22

3-
## Database migrations
3+
<div align="center">
4+
5+
[![Alembic](https://img.shields.io/badge/Migrations-Alembic-orange?style=for-the-badge)](https://alembic.sqlalchemy.org/)
6+
[![SQLite](https://img.shields.io/badge/Database-SQLite-blue?style=for-the-badge&logo=sqlite)](https://www.sqlite.org/)
7+
[![CI/CD](https://img.shields.io/badge/Pipeline-GitHub%20Actions-green?style=for-the-badge&logo=github)](https://github.com/features/actions)
8+
9+
</div>
10+
11+
## 🗄️ Database migrations
412

513
The project uses Alembic to manage the SQLite schema.
614

docs/en/index.md

Lines changed: 72 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,75 @@
1-
# 📄 InvoiceFlowBot Documentation
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=150&section=header&text=Documentation&fontSize=50&animation=fadeIn&fontAlignY=38&desc=InvoiceFlowBot%20•%20Complete%20Guide&descAlignY=60&descSize=18"/>
2+
3+
<div align="center">
4+
5+
<p align="center">
6+
<img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=18&duration=3000&pause=1000&center=true&vCenter=true&width=500&lines=Automated+Invoice+Processing;Telegram+%2B+OCR+%2B+SQLite;Complete+Project+Documentation" alt="Typing SVG" />
7+
</p>
8+
9+
</div>
10+
11+
## 📋 About
212

313
InvoiceFlowBot is a Telegram assistant that automates invoice capture for finance teams. Users forward PDFs or photos, the bot extracts a structured draft via Mindee, lets the operator review and edit details, and persists confirmed invoices to SQLite.
414

5-
The workflow removes repetitive manual entry. Accountants receive a ready draft, adjust header fields or line items, add comments, and store the final version with a single command. Historical queries stay available in the same bot chat.
6-
7-
## 📚 Documentation map
8-
9-
- 📖 [System overview](overview.md) — architecture, components, and the data path from Telegram to the database
10-
- 🏗️ [Architecture](architecture.md) — high level architecture diagrams and component interactions
11-
- 💻 [Local setup](setup-local.md) — run without Docker, configure the virtual environment and `.env`
12-
- 🐳 [Docker setup](setup-docker.md) — container deployment, volume mounting, and upgrades
13-
- ⚙️ [Configuration](config.md) — every environment variable and how `config.py` reads it
14-
- 🗄️ [Database](database.md) — SQLite schema, entities, and backup tips
15-
- 📝 [Logging](logging.md) — log files, rotation, and recommended levels
16-
- 📖 [Usage](usage.md) — end-user flow, commands, and inline buttons
17-
- 🧪 [Tests](tests.md) — pytest instructions and coverage areas
18-
- 🔧 [Troubleshooting](troubleshooting.md) — quick fixes for common issues
19-
- 📸 [Screenshots](screenshots.md) — visual references for the most common bot flows
20-
- 📋 [Architecture decisions (ADR)](../adr/0001-mindee-as-primary-ocr-provider.md) — design decision records for key technology choices
15+
> [!NOTE]
16+
> The workflow removes repetitive manual entry. Accountants receive a ready draft, adjust header fields or line items, add comments, and store the final version with a single command.
17+
18+
## 📚 Documentation Map
19+
20+
<div align="center">
21+
22+
### 🚀 Quick Start
23+
24+
<table>
25+
<tr>
26+
<td width="50%" align="center">
27+
<img src="https://img.icons8.com/fluency/96/000000/laptop.png" width="64"/>
28+
<br/>
29+
<h4>💻 <a href="setup-local.md">Local Setup</a></h4>
30+
<sub>Python environment and dependencies</sub>
31+
</td>
32+
<td width="50%" align="center">
33+
<img src="https://img.icons8.com/fluency/96/000000/docker.png" width="64"/>
34+
<br/>
35+
<h4>🐳 <a href="setup-docker.md">Docker Setup</a></h4>
36+
<sub>Containerization and deployment</sub>
37+
</td>
38+
</tr>
39+
</table>
40+
41+
### 📖 Main Documentation
42+
43+
</div>
44+
45+
| Section | Description |
46+
|---------|-------------|
47+
| 📖 [System Overview](overview.md) | Architecture, components, data flow |
48+
| 🏗️ [Architecture](architecture.md) | Diagrams and component interactions |
49+
| ⚙️ [Configuration](config.md) | Environment variables and settings |
50+
| 🗄️ [Database](database.md) | SQLite schema and migrations |
51+
| 📝 [Logging](logging.md) | Log files and levels |
52+
| 📖 [Usage](usage.md) | Commands and interactive buttons |
53+
| 🧪 [Tests](tests.md) | Pytest and code coverage |
54+
| 👨‍💻 [Development](development.md) | Developer guide |
55+
| 🔧 [Troubleshooting](troubleshooting.md) | Common issues and solutions |
56+
| 📸 [Screenshots](screenshots.md) | Visual examples |
57+
58+
<details>
59+
<summary><b>📋 Architecture Decision Records (ADR)</b></summary>
60+
61+
Documented decisions for key technologies:
62+
63+
- [ADR-0001: Mindee as primary OCR provider](../adr/0001-mindee-as-primary-ocr-provider.md)
64+
- [ADR-0002: SQLite as primary storage](../adr/0002-sqlite-as-primary-storage.md)
65+
- [ADR-0003: Aiogram 3 as Telegram framework](../adr/0003-aiogram3-as-telegram-framework.md)
66+
67+
</details>
68+
69+
---
70+
71+
<div align="center">
72+
73+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&height=100&section=footer"/>
74+
75+
</div>

docs/en/logging.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
# 📝 Logging
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,16,20&height=120&section=header&text=Logging&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
[![Rotating](https://img.shields.io/badge/Handler-Rotating-blue?style=for-the-badge)](https://docs.python.org/3/library/logging.handlers.html)
6+
[![Files](https://img.shields.io/badge/Log%20Files-4-green?style=for-the-badge)](#log-files)
7+
[![Levels](https://img.shields.io/badge/Levels-Configurable-orange?style=for-the-badge)](#configuration-knobs)
8+
9+
</div>
10+
11+
## 📋 About Logging
212

313
`ocr/engine/util.py` configures rotating log handlers the first time `get_logger` runs. By default logs live in `logs/` next to the source code or inside the directory specified via `LOG_DIR`.
414

docs/en/overview.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
# 📖 System Overview
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,16,20&height=120&section=header&text=System+Overview&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
[![System](https://img.shields.io/badge/System-Architecture-blue?style=for-the-badge)](architecture.md)
6+
[![Components](https://img.shields.io/badge/Components-Modular-green?style=for-the-badge)](architecture.md)
7+
[![Flow](https://img.shields.io/badge/Data-Flow-orange?style=for-the-badge)](#data-flow)
8+
9+
</div>
10+
11+
## 📋 Description
212

313
InvoiceFlowBot runs as a Telegram bot that receives documents from users and processes them through an OCR pipeline:
414

docs/en/screenshots.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
1-
# Bot screenshots
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=120&section=header&text=Screenshots&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
<p align="center">
6+
<img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=18&duration=3000&pause=1000&center=true&vCenter=true&width=500&lines=Visual+Guide;Full+Workflow;From+Start+to+Save" alt="Typing SVG" />
7+
</p>
8+
9+
![Gallery](https://img.shields.io/badge/Screenshots-4-blue?style=for-the-badge)
10+
![Status](https://img.shields.io/badge/Status-Updated-green?style=for-the-badge)
11+
12+
</div>
13+
14+
## 📖 About
215

316
This gallery illustrates the full cycle: starting the chat, processing an invoice, editing data, and querying saved results.
417

docs/en/setup-docker.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
# 🐳 Docker Setup
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=120&section=header&text=Docker+Setup&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
[![Docker](https://img.shields.io/badge/Docker-Compose-blue?style=for-the-badge&logo=docker&logoColor=white)](https://www.docker.com/)
6+
[![Container](https://img.shields.io/badge/Container-Ready-green?style=for-the-badge)](https://hub.docker.com/)
7+
[![Quick Start](https://img.shields.io/badge/Setup-5%20Minutes-orange?style=for-the-badge)](#start-the-stack)
8+
9+
</div>
10+
11+
## 📋 About Docker
212

313
Docker provides a self-contained runtime for InvoiceFlowBot: Python, dependencies, and the bot code run inside the container, while the host only keeps the database and logs.
414

docs/en/setup-local.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
# 💻 Local Setup
1+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,16,20&height=120&section=header&text=Local+Setup&fontSize=40&animation=fadeIn"/>
2+
3+
<div align="center">
4+
5+
[![Python](https://img.shields.io/badge/Python-3.11+-blue?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/)
6+
[![venv](https://img.shields.io/badge/Environment-Virtual-green?style=for-the-badge)](https://docs.python.org/3/library/venv.html)
7+
[![Setup](https://img.shields.io/badge/Guide-Step%20by%20Step-orange?style=for-the-badge)](#steps)
8+
9+
</div>
10+
11+
## 📋 About
212

313
> [!NOTE]
414
> This guide is for installation without Docker. For quick start, see [Docker setup](setup-docker.md).

0 commit comments

Comments
 (0)