A modern web application built with FastAPI for efficient data processing and scheduling.
- Asynchronous SQLite database operations using
aiosqlite - Scheduled tasks management with
APScheduler - Beautiful colored logging with
colorlog - Modern REST API using FastAPI with standard features
- HTML templating using Jinja2
- XML processing capabilities with lxml
- HTTP client functionality with HTTPX
- Python 3.13+
- uv package manager
- Clone the repository:
git clone https://github.com/yourusername/catscan.git
cd catscan- Install uv package manager and sync
uv sync- Run next script for initializing the test SQLite database
python -m scripts.init_test_dbStart the server:
uvicorn main:app --reloadThe API documentation will be available at (app can use other port):
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Admin panel : http://localhost:8000/admin/pages
-
Console Output
- Colored formatting using
colorlog - Shows timestamp, logger name, level, and message
- Format:
%(asctime)s - %(name)s - %(levelname)s - %(message)s
- Colored formatting using
-
File Output
- Located in
output/scheduler.log - Rotating file handler to manage log size
- Detailed formatting without colors
- Preserves complete logging history
- Located in
models.observer: Tracks page changes and updates (INFO level)app.routers.admin_routes: Admin panel operations (DEBUG level)uvicorn: Server logs (INFO level)- Root logger: Catches all other logging (INFO level)