SyncMate – Project Overview

Inspiration

I wanted to create a project that bridges systems programming and AI, while remaining practical and understandable. SyncMate reflects my interest in building tools that automate repetitive tasks and make everyday computing simpler.


What It Does

SyncMate is a Python-based application that keeps two folders perfectly in sync like a mini Dropbox.
It continuously monitors file changes using MD5 hashing, detects updates or new files, and synchronizes them automatically.

This project demonstrates key concepts in systems programming, file I/O, automation, and AI-based insights, wrapped in a clean Tkinter GUI for an interactive experience.


How We Built It

For this project, I used a pre-prepared file synchronization template (SyncMate.py) to quickly build a reliable backend.
During HackPSU, I extended it by adding:

  • A Tkinter GUI
  • AI-powered log summarization
  • Real-time file monitoring
  • Detailed logging

Challenges We Ran Into

  • Initially, the Tkinter window froze or turned white whenever syncing began.
    We discovered this was due to running long file operations on the main thread.
    After researching and getting help online (including from ChatGPT), we fixed it by using background threads and safe GUI updates.

  • Real-time logging caused the ScrolledText widget to sometimes crash and fail to refresh due to concurrent writes. We solved this by adding thread-safe log updates and periodic refreshes.

  • AI integration issues arose when connecting the log summarizer model loading caused delays and freezes. We optimized when summaries were generated and added better error handling.


Accomplishments That We’re Proud Of

  • Built a real-time file synchronization tool with logging and error handling
  • Developed a Tkinter GUI for easy folder selection and live updates
  • Integrated an AI-powered log summarizer for concise file change reporting
  • Completed a multi-component project (systems + AI) entirely during HackPSU

What We Learned

  • Practical experience with file I/O, hashing, and multi-threading
  • How to build a responsive GUI without freezing during long tasks
  • Techniques for integrating AI models into systems projects

Additional Information & Citations

Project Ownership

  • The project’s main logic (file synchronization, GUI, and AI summarization) was written by our team during HackPSU Fall 2025.
  • We used ChatGPT to clarify errors, improve Tkinter design, and optimize AI log summarization all implementations were written, tested, and finalized by us.

Resources & Citations

We used general references for debugging and structure:

  • Python tkinter documentation
  • Python hashlib documentation
  • Python shutil module documentation
  • Sentence Transformers library for AI summarization

Consulted: OpenAI ChatGPT for debugging guidance, GUI troubleshooting, and best practices (all implementations were finalized and tested by our team).

Open Source Packages Used

  • hashlib – for file hashing
  • shutil – for file copy/sync
  • tkinter – for GUI
  • sentence-transformers – for AI summarization

What's Next for SyncMate

  • Add Google Drive or AWS S3 integration for cloud sync
  • Implement file versioning and recovery options
  • Add user authentication for multi-device syncing

Built With

  • hashlib
  • os
  • python
  • sentencetransformers
  • shutil
  • threading
  • tkinter
Share this project:

Updates

Submission history