It is necessary to refine the existing desktop application in Python (about 9000 lines of code).
The program is already operational and has a graphical interface. The following are used:
- Python 3
- Selenium
- Tkinter / CustomTkinter
- SQLite
- asyncio
- requests
- Telegram Bot API
The project does not require development "from scratch." It is necessary to understand the existing code and make changes.
Reason for refinement
After the update of platform X (Twitter), the interface and logic of chats have changed.
As a result, part of the functionality related to chat operations no longer works or works incorrectly.
It is necessary to adapt the program to the new version of the interface.
What needs to be done
1. Analysis of the existing project
It is necessary to:
- study the structure of the program;
- find all modules responsible for chat operations;
- determine dependencies between them;
- create a plan for making changes.
2. Refinement of functionality
The program needs to be adapted to the new chat interface of X.
In particular, implement correct operation of:
- opening the chat list;
- opening a specific chat;
- determining the active chat;
- receiving new messages;
- sending messages;
- working with group chats;
- error handling and non-standard situations.
3. Preserve the existing logic of the program
During the work, it is necessary to:
- not disrupt the operation of the graphical interface;
- not change the existing logic of other modules;
- maintain compatibility with the SQLite database;
- preserve the existing settings system;
- minimize the number of changes in the code.
4. Code requirements
The code must be:
- clear;
- structured;
- without duplication;
- compatible with the current architecture of the project.
5. Verification
After completing the work, it is necessary to:
- check the program launch;
- ensure there are no errors;
- test the implemented functionality.
What will be provided
The contractor will be provided with:
- the source code of the program;
- a description of the current functionality;
- information about problematic areas;
- test data (if needed).
Experience in web interface automation and refactoring existing code will be an advantage.