Vom Telegram-Bot zur skalierbaren Web-App: Die Evolution eines internen Tools
Ein Lagerverlustanalyst stand vor einer Routineaufgabe: Die tägliche Verarbeitung mehrerer Excel-Dateien erforderte 5 Stunden pro Tag oder 150 Stunden im Monat. Dies bedeutete erhebliche Zeitkosten. Die Lösung war ein MVP in Form eines Python-Telegram-Bots: Benutzer schickten Dateien, der Bot lieferte verarbeitete Ergebnisse. Die Verarbeitungslogik blieb unter der Kontrolle des Entwicklers, ohne dass eine Benutzeroberfläche nötig war.
Dieser Ansatz funktionierte zunächst: Der Telegram-Bot bot schnellen Zugriff ohne Benutzeroberfläche. Doch mit wachsender Komplexität wurden die Grenzen deutlich.
Grenzen von Telegram als Systemgrundlage
Telegram ist nicht dafür ausgelegt, als zentrale Basis eines Systems zu dienen. Probleme traten schnell auf:
- Das 20-MB-Dateilimit blockierte große Uploads.
- Die Verarbeitung wurde zu einer "Black Box" ohne Statusanzeige.
- Es gab keine geeignete Oberfläche für das Management.
- Die Funktionsentwicklung wurde komplizierter.
- Zugangsprobleme in Russland aufgrund von Vorschriften.
Telegram funktionierte als Einstiegspunkt, aber nicht als Kern. Die Lösung war die Verlagerung der Logik in ein separates Backend.
Allmählicher Übergang zu einer Webanwendung
Der Übergang war keine komplette Überarbeitung: Der Bot blieb als Client bestehen, delegierte aber Aufgaben an das Backend. Eine Weboberfläche entstand mit folgenden Fähigkeiten:
- Hochladen von Dateien beliebiger Größe.
- Verfolgung des Verarbeitungsstatus.
- Management von Prozessen.
Das Projekt gewann Systemcharakter: Die Trennung der Verantwortlichkeiten vereinfachte die Entwicklung. Das Backend übernimmt Daten und Geschäftslogik, der Webteil die Interaktion, und Integrationen (Google Sheets, Yandex.Disk) übernehmen Speicherung und Transfer.
Architektur: Schichtentrennung
Das System ist nach Schichten strukturiert:
- Backend: Datenverarbeitung mit pandas, Geschäftslogik.
- Weboberfläche: API-Schicht, Frontend für Benutzer.
- Clients: Telegram-Bot als eine Schnittstelle.
- Integrationen: OAuth für Yandex.Disk, Google Sheets API.
Diese Trennung ermöglicht es, Schnittstellen unabhängig von der Logik zu ändern. Unternehmensrichtlinien (kein direkter Datenbankzugriff ohne Proxy) erforderten diesen Ansatz.
Lösung von Problemen mit großen Dateien
Der entscheidende Moment war die Umgehung der Telegram-Grenzen. Integration mit Yandex.Disk über OAuth: Der Bot akzeptiert einen Link, das Backend lädt die Datei herunter und verarbeitet sie. Dies bot Stabilität und Geschwindigkeit ohne Abhängigkeit von Plattformbeschränkungen.
UX für interne Tools
Interne Tools ignorieren oft die Benutzeroberfläche, doch einfache Verbesserungen sind entscheidend:
- Fortschrittsanzeigen für die Verarbeitung.
- Klare Buttons und Formulare.
- Anpassung an mobile Geräte.
Dies verbessert die Benutzerfreundlichkeit: Das System wird zu einem Werkzeug für den täglichen Gebrauch.
Entwicklungsumgebung: Von PyCharm zu KI-Agenten
Die Entwicklung erfolgte in PyCharm für Datenforschung und Debugging. Der Wechsel zu Cursor mit KI-Agenten beschleunigte Routineaufgaben:
- Generieren von Boilerplate-Code.
- Einfaches Refactoring.
- Einbinden neuer Funktionen.
Cursor ist effektiv für Architektur und Webentwicklung. PyCharm bleibt für tiefgehende Datenanalyse. Ein hybrider Ansatz: KI für Automatisierung, klassische Tools für komplexe Aufgaben. Tests mit Claude Code und n8n für KI-Integrationen in der Datenverarbeitung sind geplant.
Ergebnisse und Einsparungen
Das System sparte 150 Stunden monatlich für das Analystenteam. Der entscheidende Wandel war die Abkehr von Telegram als Zentrum: Das Hinzufügen von Schnittstellen und Integrationen wurde möglich, ohne Risiko von Ausfällen.
Was zählt:
- Die schrittweise Extraktion des Backends aus dem Bot machte das System skalierbar.
- Die Yandex.Disk-Integration löste Dateilimit-Probleme.
- Die Trennung von UI und Logik vereinfachte die Entwicklung.
- KI-Agenten in Cursor beschleunigten die Boilerplate-Entwicklung.
- Die Weboberfläche fügte Prozesskontrolle hinzu.
Lehren und Entwicklungspläne
Schlussfolgerungen: Beginnen Sie mit MVP, dann refaktorisieren Sie bei Wachstum. Bauen Sie nicht sofort perfekte Architektur. Tools wie Cursor beeinflussen die Produktivität.
Nächste Schritte: BI-Analysen im Web, Dashboards, Docker-Containerisierung. Dies ist technisches Material für mittlere/senior Entwickler, die interne Systeme aufbauen.
— Editorial Team
Noch keine Kommentare.