diff --git a/README.md b/README.md index be623f9f..1d11bd1e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,52 @@ Portfolio-grade end-to-end retail demand forecasting system. + + +[![License: MIT](https://img.shields.io/badge/License-MIT-3DA639?style=for-the-badge)](LICENSE) +[![Release](https://img.shields.io/github/v/release/w7-mgfcode/ForecastLabAI?style=for-the-badge&color=blueviolet&logo=github&logoColor=white)](https://github.com/w7-mgfcode/ForecastLabAI/releases) +[![CI](https://img.shields.io/github/actions/workflow/status/w7-mgfcode/ForecastLabAI/ci.yml?branch=dev&style=for-the-badge&label=CI&logo=githubactions&logoColor=white)](https://github.com/w7-mgfcode/ForecastLabAI/actions/workflows/ci.yml) +[![Python 3.12+](https://img.shields.io/badge/Python-3.12%2B-3776AB?style=for-the-badge&logo=python&logoColor=white)](pyproject.toml) + +**Backend** + +![FastAPI](https://img.shields.io/badge/FastAPI-009688?style=for-the-badge&logo=fastapi&logoColor=white) +![Pydantic v2](https://img.shields.io/badge/Pydantic_v2-E92063?style=for-the-badge&logo=pydantic&logoColor=white) +![SQLAlchemy 2.0](https://img.shields.io/badge/SQLAlchemy_2.0-D71F00?style=for-the-badge&logo=sqlalchemy&logoColor=white) +![PostgreSQL 16](https://img.shields.io/badge/PostgreSQL_16-4169E1?style=for-the-badge&logo=postgresql&logoColor=white) +![pgvector](https://img.shields.io/badge/pgvector-336791?style=for-the-badge&logo=postgresql&logoColor=white) +![Alembic](https://img.shields.io/badge/Alembic-6BA539?style=for-the-badge) +![structlog](https://img.shields.io/badge/structlog-FAC15A?style=for-the-badge&logoColor=black) + +**Frontend** + +![React 19](https://img.shields.io/badge/React_19-20232A?style=for-the-badge&logo=react&logoColor=61DAFB) +![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white) +![Vite 7](https://img.shields.io/badge/Vite_7-646CFF?style=for-the-badge&logo=vite&logoColor=white) +![Tailwind 4](https://img.shields.io/badge/Tailwind_4-06B6D4?style=for-the-badge&logo=tailwindcss&logoColor=white) +![shadcn/ui](https://img.shields.io/badge/shadcn/ui-000000?style=for-the-badge&logo=shadcnui&logoColor=white) +![TanStack Query](https://img.shields.io/badge/TanStack_Query-FF4154?style=for-the-badge&logo=reactquery&logoColor=white) + +**ML / AI** + +![scikit-learn](https://img.shields.io/badge/scikit--learn-F7931E?style=for-the-badge&logo=scikitlearn&logoColor=white) +![LightGBM](https://img.shields.io/badge/LightGBM-1FBAEE?style=for-the-badge) +![XGBoost](https://img.shields.io/badge/XGBoost-FF6F00?style=for-the-badge) +![PydanticAI](https://img.shields.io/badge/PydanticAI-E92063?style=for-the-badge&logo=pydantic&logoColor=white) +![OpenAI](https://img.shields.io/badge/OpenAI-412991?style=for-the-badge&logo=openai&logoColor=white) +![Anthropic](https://img.shields.io/badge/Anthropic-191919?style=for-the-badge&logo=anthropic&logoColor=white) +![Ollama](https://img.shields.io/badge/Ollama-000000?style=for-the-badge&logo=ollama&logoColor=white) + +**Tooling** + +![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white) +![uv](https://img.shields.io/badge/uv-DE5FE9?style=for-the-badge&logo=astral&logoColor=white) +![pnpm](https://img.shields.io/badge/pnpm-F69220?style=for-the-badge&logo=pnpm&logoColor=white) +![GitHub Actions](https://img.shields.io/badge/GitHub_Actions-2088FF?style=for-the-badge&logo=githubactions&logoColor=white) +![Ruff](https://img.shields.io/badge/Ruff-FCC21B?style=for-the-badge&logo=ruff&logoColor=black) +![mypy --strict](https://img.shields.io/badge/mypy_--strict-1F5082?style=for-the-badge) +![pytest](https://img.shields.io/badge/pytest-0A9EDC?style=for-the-badge&logo=pytest&logoColor=white) + ## Features - **Data Platform**: Multi-table mini warehouse (store/product/calendar + sales + price/promo/inventory signals)