{"id":30745424,"url":"https://github.com/nicolaspetrov/python-projects","last_synced_at":"2025-09-04T03:46:20.412Z","repository":{"id":310844959,"uuid":"1041442631","full_name":"NicolasPetrov/Python-Projects","owner":"NicolasPetrov","description":"This folder contains all my Python projects.","archived":false,"fork":false,"pushed_at":"2025-08-20T14:36:25.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-20T16:27:01.430Z","etag":null,"topics":["machine-learning","ml","python","telegrambots"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicolasPetrov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-20T13:47:42.000Z","updated_at":"2025-08-20T14:36:29.000Z","dependencies_parsed_at":"2025-08-20T16:37:47.552Z","dependency_job_id":null,"html_url":"https://github.com/NicolasPetrov/Python-Projects","commit_stats":null,"previous_names":["nicolaspetrov/python-projects"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/NicolasPetrov/Python-Projects","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasPetrov%2FPython-Projects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasPetrov%2FPython-Projects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasPetrov%2FPython-Projects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasPetrov%2FPython-Projects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasPetrov","download_url":"https://codeload.github.com/NicolasPetrov/Python-Projects/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasPetrov%2FPython-Projects/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273549051,"owners_count":25125257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machine-learning","ml","python","telegrambots"],"created_at":"2025-09-04T03:46:19.569Z","updated_at":"2025-09-04T03:46:20.400Z","avatar_url":"https://github.com/NicolasPetrov.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python-Projects\nWelcome! This folder contains all my Python projects. Below are brief descriptions and links to the corresponding folders.\n\n## 1) Task Manager - Personal Task Manager\n\u003cimg width=\"1433\" height=\"766\" alt=\"task\" src=\"https://github.com/user-attachments/assets/0365780d-d39f-4670-a84a-096a4f5edc36\" /\u003e\n\nA **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.\n\n**Key Features**\n- Tasks: create, edit, complete, delete\n- Priorities: **High / Medium / Low**\n- Statuses: **Pending / In Progress / Done**\n- Due dates with overdue highlighting\n- Modern, responsive UI (Bootstrap 5)\n- Internationalization (EN/RU, EN by default)\n- Storage: SQLite (single DB file) with a simple migration path\n\n**Technical Details**: Python 3.7+, **Flask**, **SQLAlchemy**, **Flask-Babel**, Bootstrap 5, Jinja2  \n**Structure (main)**: `app.py`, `run.py` (port 5001), `requirements.txt`, `templates/`, `translations/`\n\n\u003ca href=\"https://github.com/NicolasPetrov/Task-Manager\"\u003e\u003ckbd\u003eLearn more →\u003c/kbd\u003e\u003c/a\u003e\n\n---\n\n## 2) Housing Price Predictor\n\u003cimg width=\"1429\" height=\"756\" alt=\"458637868-a3fec453-b305-4725-b909-b17fa7b4cb49\" src=\"https://github.com/user-attachments/assets/208b95c9-d474-464f-85c5-917208679b92\" /\u003e\n\nA **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.\n\n**Key Features**\n- XGBoost + Optuna (10k+ records, automated training)\n- Streamlit UI: real-time predictions, data analysis, visualizations\n- Interpretability: **SHAP** (feature importance), **LIME** (local behavior)\n- Advanced preprocessing: features for location/infrastructure/environment, outlier handling (IQR)\n- Metrics: R², RMSE, MAE, MAPE + plots\n- Logging, robustness to missing values, structured persistence of models/configs\n\n**Technologies**: Python 3.8+, `xgboost`, `streamlit`, `shap`, `optuna`, `plotly`\n\n**Structure (main)**\n- `app.py` — web interface (EN/RU)\n- `train_model.py` — automated training \u0026 optimization\n- `config/config.py` — data/model parameters\n- `src/model.py` — XGBoost wrapper (fit/predict/eval)\n- `src/data_processing.py` — preprocessing \u0026 feature engineering\n- `src/visualization.py` — plots \u0026 dashboards\n- `src/explainer.py` — SHAP/LIME\n\n\u003ca href=\"https://github.com/NicolasPetrov/Housing-Price-Predictor\"\u003e\u003ckbd\u003eLearn more →\u003c/kbd\u003e\u003c/a\u003e\n\n---\n\n## 3) GifAnimalBot\n\u003cimg width=\"716\" height=\"733\" alt=\"416006986-841a89f5-cbcc-495f-a8d8-2b30b05a368c-2\" src=\"https://github.com/user-attachments/assets/90650fc2-8721-41b7-bd08-fccb5480cac0\" /\u003e\n\nA 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 (\u003c5MB)** for Telegram compatibility, inline buttons, and resilient error/retry handling. A solid example of an asynchronous bot with a modular architecture.\n\n**Key Features**\n- Choose an animal → random GIF\n- `/stats` — counter of received GIFs and favorite animals\n- Size filtering (\u003c5MB) based on GIPHY size metadata\n- Inline buttons: “More”, “Another Animal”\n- In-memory GIF caching; de-duplication via JSON persistence\n- Network retries and logging\n\n**Technical Details**: Python 3.13, `aiogram` (3.x), `aiohttp`\n\n**Structure (main)**\n- `config.py` — tokens (Telegram/GIPHY)\n- `gif_manager.py` — fetching/caching/size filtering/persistence\n- `keyboards.py` — inline keyboards\n- `handlers.py` — commands \u0026 callbacks (`/start`, `/stats`)\n- `bot.py` — entry point, polling with retries\n- `used_gifs.json` — prevents duplicates\n\n\u003ca href=\"https://github.com/NicolasPetrov/GifAnimalBot\"\u003e\u003ckbd\u003eLearn more →\u003c/kbd\u003e\u003c/a\u003e\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolaspetrov%2Fpython-projects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicolaspetrov%2Fpython-projects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolaspetrov%2Fpython-projects/lists"}