https://github.com/nicolaspetrov/python-projects
This folder contains all my Python projects.
https://github.com/nicolaspetrov/python-projects
machine-learning ml python telegrambots
Last synced: 10 months ago
JSON representation
This folder contains all my Python projects.
- Host: GitHub
- URL: https://github.com/nicolaspetrov/python-projects
- Owner: NicolasPetrov
- Created: 2025-08-20T13:47:42.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-20T14:36:25.000Z (10 months ago)
- Last Synced: 2025-08-20T16:27:01.430Z (10 months ago)
- Topics: machine-learning, ml, python, telegrambots
- Homepage:
- Size: 4.88 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Python-Projects
Welcome! This folder contains all my Python projects. Below are brief descriptions and links to the corresponding folders.
## 1) Task Manager - Personal Task Manager

A **personal task manager** with a Flask web UI and **EN/RU localization**. Demonstrates a production-style CRUD app: modular architecture, internationalization, error handling, and an easy deploy setup. Suitable as a starter for learning projects, pet tools, or small internal apps.
**Key Features**
- Tasks: create, edit, complete, delete
- Priorities: **High / Medium / Low**
- Statuses: **Pending / In Progress / Done**
- Due dates with overdue highlighting
- Modern, responsive UI (Bootstrap 5)
- Internationalization (EN/RU, EN by default)
- Storage: SQLite (single DB file) with a simple migration path
**Technical Details**: Python 3.7+, **Flask**, **SQLAlchemy**, **Flask-Babel**, Bootstrap 5, Jinja2
**Structure (main)**: `app.py`, `run.py` (port 5001), `requirements.txt`, `templates/`, `translations/`
---
## 2) Housing Price Predictor

A **production-ready ML application** for real estate price prediction using **XGBoost**, interpretability (SHAP/LIME), and a **Streamlit web interface**. The project demonstrates the full cycle: data generation/preparation, training with hyperparameter tuning (Optuna), artifact persistence, dashboards, error handling, and a modular architecture. Supports **EN/RU** interface switching.
**Key Features**
- XGBoost + Optuna (10k+ records, automated training)
- Streamlit UI: real-time predictions, data analysis, visualizations
- Interpretability: **SHAP** (feature importance), **LIME** (local behavior)
- Advanced preprocessing: features for location/infrastructure/environment, outlier handling (IQR)
- Metrics: R², RMSE, MAE, MAPE + plots
- Logging, robustness to missing values, structured persistence of models/configs
**Technologies**: Python 3.8+, `xgboost`, `streamlit`, `shap`, `optuna`, `plotly`
**Structure (main)**
- `app.py` — web interface (EN/RU)
- `train_model.py` — automated training & optimization
- `config/config.py` — data/model parameters
- `src/model.py` — XGBoost wrapper (fit/predict/eval)
- `src/data_processing.py` — preprocessing & feature engineering
- `src/visualization.py` — plots & dashboards
- `src/explainer.py` — SHAP/LIME
---
## 3) GifAnimalBot

A Telegram bot built with **aiogram 3.x** that sends random animal GIFs from the **GIPHY API** (cats, dogs, capybaras, parrots, pandas, otters). It includes **usage statistics**, a **size filter (<5MB)** for Telegram compatibility, inline buttons, and resilient error/retry handling. A solid example of an asynchronous bot with a modular architecture.
**Key Features**
- Choose an animal → random GIF
- `/stats` — counter of received GIFs and favorite animals
- Size filtering (<5MB) based on GIPHY size metadata
- Inline buttons: “More”, “Another Animal”
- In-memory GIF caching; de-duplication via JSON persistence
- Network retries and logging
**Technical Details**: Python 3.13, `aiogram` (3.x), `aiohttp`
**Structure (main)**
- `config.py` — tokens (Telegram/GIPHY)
- `gif_manager.py` — fetching/caching/size filtering/persistence
- `keyboards.py` — inline keyboards
- `handlers.py` — commands & callbacks (`/start`, `/stats`)
- `bot.py` — entry point, polling with retries
- `used_gifs.json` — prevents duplicates