1. Initial Phase: Correcting Critical Shortcomings:
The project was handed over in a highly deteriorated state: there was no version control system in place, making it impossible to track code changes.
Migration to Git: The entire project was migrated to Git, allowing us to control changes and minimize code conflicts.
The code was not containerized initially. This led to numerous errors related to different operating systems and dependencies.
Docker Containerization: Implemented full containerization using Docker for unified deployment on any platform.
There were version conflicts in libraries due to a poorly constructed requirements.txt.
Updating Dependencies: Created a new, correct dependency file without conflicts, ensuring minimal version compatibility.
Secret keys were hardcoded into the code, which is unacceptable by basic security standards.
Key Security: All keys were moved to a .env file (environment variables), as should be done.
Code Review for Backdoors:
Discovered a library with an auto-updating backdoor written by the previous developers. The code was partially copied, and the dangerous functionality was removed.
Minting Issues due to incorrect key management and dependencies:
After detailed analysis and collaboration with the community, the bugs were fixed.
Complete Chaos in Setting Up Metadata and Images:
There was no documentation or connection between content and metadata.
Had to manually decode smart contract data, find correct URLs, and recreate the structure for hosting data on the server.
Updating JSON Files: JSON files had to be rewritten to include the correct image links.
2. Fixes, Updates, and Optimization:
Rewrote the Caching Mechanism:
The previous caching, implemented by the prior developers, led to failures during startup.
Introduced a new algorithm that eliminates these issues.
Removal of Outdated Code:
Removed a large amount of outdated and unnecessary code that slowed down the project and hindered its development.
Completely Rewrote the API Interaction Mechanism:
Data is now retrieved via the TON API, which is much faster and more stable than the slow calls through TON Center.
Rewrote Wallet Connections:
The outdated code was replaced with a new library using tokens, eliminating limits and increasing system stability as the load grows.
Redesigned the Scanning of Players' NFTs:
The old code was incapable of scaling.
Data updates now take 1 minute instead of 60 minutes, even as the number of users increases.
Optimized the Database:
Added indexes to speed up queries. In the original project, indexes were absent, which significantly slowed down operations.
Identified a Memory Leak due to a custom "core" created by the previous developers.
Decided to replace this low-quality code with proven open-source libraries, which eliminates current problems and prevents new ones.
Full transition to new libraries is planned for the coming week.
Optimized Code for Data Migration from @GETON to @MEMEX:
Critical errors made by the previous team were corrected.
Conclusion:
The project was received from one of the top game studios in an unsatisfactory condition:
Failure to Follow Basic Development Standards: no Git, hardcoded keys, insecure libraries.
Code Unsuitable for Scaling and Maintenance.
Use of a Custom "Core" instead of proven libraries caused numerous bugs and slowdowns.
Outcome: The project was completely redesigned and brought in line with modern standards. It is now ready for scaling and further development.
