Potrzebne jest dopracowanie istniejącego programu desktopowego w Pythonie (około 9000 linii kodu).
Program już działa i ma graficzny interfejs. Używane są:
- Python 3
- Selenium
- Tkinter / CustomTkinter
- SQLite
- asyncio
- requests
- Telegram Bot API
Projekt nie wymaga tworzenia “od zera”. Należy zrozumieć istniejący kod i wprowadzić zmiany.
Powód dopracowania
Po aktualizacji platformy X (Twitter) zmienił się interfejs i logika działania czatów.
W rezultacie część funkcjonalności związanej z działaniem czatów przestała działać lub działa niepoprawnie.
Należy dostosować program do nowej wersji interfejsu.
Co należy zrobić
1. Analiza istniejącego projektu
Należy:
- zbadać strukturę programu;
- znaleźć wszystkie moduły odpowiedzialne za pracę z czatami;
- określić zależności między nimi;
- sporządzić plan wprowadzenia zmian.
2. Dopracowanie funkcjonalności
Trzeba dostosować program do nowego interfejsu czatów X.
W szczególności zrealizować poprawne działanie:
- otwierania listy czatów;
- otwierania konkretnego czatu;
- określenia aktywnego czatu;
- otrzymywania nowych wiadomości;
- wysyłania wiadomości;
- pracy z czatami grupowymi;
- obsługi błędów i nietypowych sytuacji.
3. Zachowanie istniejącej logiki programu
Podczas wykonywania prac należy:
- nie naruszyć działania graficznego interfejsu;
- nie zmieniać istniejącej logiki innych modułów;
- zachować kompatybilność z bazą danych SQLite;
- zachować istniejący system ustawień;
- zminimalizować liczbę zmian w kodzie.
4. Wymagania dotyczące kodu
Kod powinien być:
- zrozumiały;
- ustrukturyzowany;
- bez duplikacji;
- kompatybilny z aktualną architekturą projektu.
5. Weryfikacja
Po zakończeniu pracy należy:
- sprawdzić uruchomienie programu;
- upewnić się o braku błędów;
- przetestować zrealizowaną funkcjonalność.
Co zostanie dostarczone
Wykonawcy zostanie dostarczone:
- źródłowy kod programu;
- opis aktualnej funkcjonalności;
- informacje dotyczące problematycznych miejsc;
- dane testowe (w razie potrzeby).
Doświadczenie w pracy z automatyzacją interfejsów webowych oraz refaktoryzacją istniejącego kodu będzie dodatkowym atutem.