June 16, 2025
I created The game using python, and since I haven't made any websockets or server for gaming, I started by creating singleplayer mode with basic AI bots to make the game playable : ), After everything worked I started implementing the server using simple python library called: socketserver and threading ofc.
Then made net_client in the game to finally support multiplayer and implemented an entry page to choose from singleplayer and multiplayer and now fixing bugs and adding more features.
When I tested my app I found some issues related to the player itself like what if the user want subtitle, what if they want a delay option for it, what about full screen mode, ui, etc ...
So I started to build my own custom video player specifically for Syncy.
- I made the a purple seek bar with burble timing 00:00/30:00
- Made the seek player functional
- Also Added full screen mode
- Added an option to set a translation from the phone using file_picker
- Added an option for translation delay or remove subtitle.
For subtitles part I made a fully custom decoder that analyzes the subtitle files and correctly insert in the UI with custom stylings.
Next I started working on a bottomsheet that shows users and if they online or offline, currently It shows users in the room when they join and if they are offline.
And connected in the room controller.
Next I made testing and found out issues related to entering and exiting full screen and fixed them, then finally tested on two devices and started to run on IOS, but found issues related to POD file and fixed them and now the app smoothly run on IOS and Android. There are a few issues that will be fixed in next devlog like:
- Screentime timeout (Will be fixed using wakelock_plus)
- Seeking not smooth (will be fixed by only triggering the seek function on user finishes seeking and make it above subtitle and more accessed in area.
- Parsing more types of subtitles.
🔧 Component Enhancements
GooeyBtn.tsx: Added onClick prop support.
Footer.tsx: Refactored backend references into a standalone footer component.
Layout.tsx: Created a simple layout to integrate with React Router.
NavBar.tsx: Improved anchor link scrolling and in-page navigation.
🎨 UI Updates & Fixes
ParallaxGallery.tsx: Resolved issues with anchor links.
SimpleGlassyBtn.tsx: Code cleanup and formatting adjustments.
Projects.tsx: Fully integrated with backend — now dynamic and interactive!
Icons: Added new SVG icons (msg.svg) for improved visual communication.
📄 Route Development
Certificate.tsx: Introduced a detailed certificate view.
Certificates.tsx: Created a separate view for showcasing all certificates professionally.
Contact.tsx: Developed a fully responsive contact form, integrated with backend.
Also made form validation using ZOD
🧩 Code Organization
icons.tsx: Consolidated and separated reusable custom glassy icons into their own module.
🧑💻 App-wide Improvements
App.tsx: Finalized About section, properly wired up routes, and optimized header/footer integration.
main.tsx: Connected new routes to the main app structure.
index.css: Added and refined styles for multiple components and UI features.
Backend:
- Added more models: Project, Certificate, SocialMedia
- Created new views for all of new models and serializers.
- Created Admin views.
(In the Attached Video, Video Sync is done correctly, as I match the duration at each pause and play. Unfortunately, my device's performance isn't very good.)
The first disk cleaner that won't destroy your dev environments for all platforms Windows, Linux, MacOS
This was widely regarded as a great move by everyone.