Budowa systemu automatyzacji wysyłki danych poprzez API
Cel projektu:
Budowa prostego systemu umożliwiającego automatyczne przetwarzanie plików danych i codzienną wysyłkę tych danych za pomocą API.
Dodatkowo — system powinien udostępniać własne API REST do dalszej integracji.
⸻
Zakres funkcjonalny:
1. Integracja z zewnętrznym API:
• Implementacja klienta API do codziennej wysyłki danych.
• Automatyczne uwierzytelnianie i autoryzacja (token, Basic Auth lub OAuth2).
• Obsługa błędów komunikacji (retry, zapisywanie nieudanych prób, alerty).
2. Import i przetwarzanie plików Excel:
• Import danych z plików w różnych formatach:
• Plik liniowy (8760 godzin w jednej kolumnie),
• Plik tabelaryczny (365×24, dzień × godzina).
• Normalizacja danych do standardowego formatu.
• Łączenie danych z różnych źródeł w celu wygenerowania kompletnego pliku wynikowego.
3. Automatyczna wysyłka danych:
• Harmonogram codziennej wysyłki danych o ustalonej godzinie (np. 06:30),
• Pełna automatyzacja także w weekendy i święta.
4. Udostępnienie własnego API REST:
• API do:
• Wgrywania nowych danych (POST),
• Podglądu statusu ostatnich wysyłek (GET),
• Pobierania logów błędów i potwierdzeń (GET).
• API zabezpieczone prostym mechanizmem autoryzacji (token JWT lub Basic Auth).
5. Raportowanie i logowanie błędów:
• System logowania nieudanych prób wysyłki,
• Automatyczna wysyłka alertu e-mailowego w przypadku błędu.
⸻
Technologia (wymagana):
• Backend: Python (preferowany framework: FastAPI lub Flask)
• Baza danych: SQLite lub PostgreSQL (do zapisywania historii wysyłek i błędów)
• Harmonogramowanie: Cron (na VPS/Linux)
• Hosting: VPS/Linux (Ubuntu)
• Repozytorium: Git (prywatne repozytorium)
⸻
Wymagania dodatkowe:
• Moduł komunikacji z API wydzielony jako osobna klasa/biblioteka,
• Kod pisany w sposób umożliwiający przyszłą rozbudowę architektury (API-first, mikroserwisowa-ready),
• Przygotowanie dokumentacji technicznej API i instrukcji wdrożeniowej.