{"id":32543878,"url":"https://github.com/teslenkopavlo/chatbotforplanningpersonaltasks","last_synced_at":"2026-04-09T12:02:13.690Z","repository":{"id":320746933,"uuid":"1083236329","full_name":"TeslenkoPavlo/ChatBotForPlanningPersonalTasks","owner":"TeslenkoPavlo","description":"Telegram bots for a college course project","archived":false,"fork":false,"pushed_at":"2025-10-25T17:27:15.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-25T17:29:11.686Z","etag":null,"topics":["college-project","express","javascript","mongodb","mongoose","nestjs","nodejs","postgresql","react","rest-api","telegraf","telegram-bot","telegram-mini-app","todo-app","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TeslenkoPavlo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-25T16:03:39.000Z","updated_at":"2025-10-25T17:27:18.000Z","dependencies_parsed_at":"2025-10-25T17:29:14.214Z","dependency_job_id":"0f051c61-eb4a-4c6f-8b3c-a04760c57922","html_url":"https://github.com/TeslenkoPavlo/ChatBotForPlanningPersonalTasks","commit_stats":null,"previous_names":["teslenkopavlo/chatbotforplanningpersonaltasks"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/TeslenkoPavlo/ChatBotForPlanningPersonalTasks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeslenkoPavlo%2FChatBotForPlanningPersonalTasks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeslenkoPavlo%2FChatBotForPlanningPersonalTasks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeslenkoPavlo%2FChatBotForPlanningPersonalTasks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeslenkoPavlo%2FChatBotForPlanningPersonalTasks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeslenkoPavlo","download_url":"https://codeload.github.com/TeslenkoPavlo/ChatBotForPlanningPersonalTasks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeslenkoPavlo%2FChatBotForPlanningPersonalTasks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281476668,"owners_count":26508145,"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-10-28T02:00:06.022Z","response_time":60,"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":["college-project","express","javascript","mongodb","mongoose","nestjs","nodejs","postgresql","react","rest-api","telegraf","telegram-bot","telegram-mini-app","todo-app","typeorm","typescript"],"created_at":"2025-10-28T17:01:22.154Z","updated_at":"2025-10-28T17:02:49.963Z","avatar_url":"https://github.com/TeslenkoPavlo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### 1. NestJS Telegram Chatbot\n\n![NestJS](https://img.shields.io/badge/NestJS-E0234E?style=for-the-badge\u0026logo=nestjs\u0026logoColor=white) ![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge\u0026logo=telegram\u0026logoColor=white) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-4169E1?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white) ![TypeORM](https://img.shields.io/badge/TypeORM-FE6732?style=for-the-badge\u0026logo=typeorm\u0026logoColor=white) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n\n* **What it is:** A fully functional chatbot that operates via commands and a keyboard within Telegram.\n* **Technologies:** NestJS, Telegraf, **PostgreSQL**, TypeORM.\n* **Features:**\n    * Full CRUD (Create, Edit, Delete tasks).\n    * Statistics, filtering (completed/pending).\n    * Bulk actions (mark all, delete all).\n    * Random task.\n* **Running:**\n    1.  `npm install`\n    2.  Create `.env` (specify `BOT_TOKEN` and `PostgreSQL` credentials).\n    3.  `npm run start:dev`\n\n---\n\n### 2. Web App Chatbot (React + Express)\n\n![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge\u0026logo=react\u0026logoColor=black) ![Express](https://img.shields.io/badge/Express-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white) ![MongoDB](https://img.shields.io/badge/MongoDB-47A248?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white) ![Vite](https://img.shields.io/badge/Vite-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white) ![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white)\n\n* **What it is:** A hybrid system. The chatbot in Telegram (`/start`) only opens a Web App.\n* **Technologies:**\n    * **Backend:** Express, **MongoDB** (Mongoose).\n    * **Frontend:** React (Vite).\n* **Features:** All functionality is implemented in the web interface (CRUD, filters, statistics).\n* **Running (Backend `server.js`):**\n    1.  `npm install`\n    2.  Create `.env` (specify `BOT_TOKEN`, `MONGO_URI`, `WEB_APP_URL`).\n    3.  `node server.js`\n* **Running (Frontend `App.tsx`):**\n    1.  `npm install`\n    2.  Create `.env.local` (specify `VITE_API_URL` – the backend address).\n    3.  `npm run dev` (for Telegram integration, **requires deployment to HTTPS**).\n\n### 3. Deployment\n\n![Railway](https://img.shields.io/badge/Railway-0B0D0E?style=for-the-badge\u0026logo=railway\u0026logoColor=white)\n\n* Both projects were deployed on the [Railway](https://railway.app/) platform.\n* **NestJS Chatbot (TaskBot):** Deployed as a `server` service (NestJS) connected to a `Postgres` database.\n\n![](https://github.com/TeslenkoPavlo/ChatBotForPlanningPersonalTasks/blob/main/assets/Screenshot_1.png)\n\n* **Web App Chatbot (TaskWebAppBot):** Deployed as two services: `client` (React) and `server` (Express), connected to a `MongoDB` database.\n\n![](https://github.com/TeslenkoPavlo/ChatBotForPlanningPersonalTasks/blob/main/assets/Screenshot_2.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteslenkopavlo%2Fchatbotforplanningpersonaltasks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteslenkopavlo%2Fchatbotforplanningpersonaltasks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteslenkopavlo%2Fchatbotforplanningpersonaltasks/lists"}