Skip to content

Ackrome/CrowdGit

Repository files navigation

🧠 CrowdGit: Tool for Synchronizing and Managing Educational Materials

GitHub stars GitHub issues MIT License

🌍 Choose language:


📚 Table of Contents

  1. Project Description
  2. Main Features
  3. Technologies
  4. How to Use
  5. Authors

📌 Project Description

CrowdGit is an intuitive application for students and educators designed to automate:

  • 🔁 Synchronization of educational materials with GitHub
  • 🗂️ Management of local file structures
  • 💾 Handling large files (up to 15 GB)

Supports automatic file splitting, reassembly of parts, and caching for faster workflows (https://devman.org/qna/git/chto-takoe-readme/).


⚙️ Main Features

🔁 GitHub Synchronization

  • ✅ Automatic upload of changes to GitHub repositories
  • 🔽 Download updates with progress tracking
  • 📦 Support for files >40 MB via chunked uploads

🗂️ Local Structure Management

  • 📁 Automated folder creation based on templates
  • 📄 File classification: lectures, seminars, homework
  • 🔁 Rule-based file renaming and relocation

📁 Partial File Handling

  • 📤 Split large files into smaller chunks
  • 📥 Reassemble original files during download
  • 📡 Download individual chunks or full files

🖥️ User Interface

  • 🌗 Light/dark theme toggle
  • 📊 Progress bars for operations
  • 🧾 Detailed logging
  • ❓ Interactive tooltips

🛡️ Additional Features

  • 🧠 Profile saving (token, paths)
  • 🔄 Token validity checks
  • 🔁 Cancelable operations
  • 📶 Internet connection verification
  • 🧠 Caching for performance optimization
  • 🗄️ SQLite database for metadata storage

🛠️ Technologies Used

Python Tkinter GitHub API SQLite

  • Core Language: Python 3.9+
  • API: PyGithub
  • UI: Tkinter + sv-ttk
  • Networking: aiohttp (async requests)
  • Media: Pillow for image processing
  • Database: SQLite for metadata

🚀 How to Use

1. Profile Setup

token = "your_github_token"
local_path = "/path/to/folder"
username = "your_name"
repo_name = "username/repo"

2. Create Folder Structure

Click "Create Structure" in the interface

3. Add Files

  • Select files via file explorer
  • Specify type: lecture/seminar/homework
  • Assign task number

4. Synchronize

  • Click "Synchronize" for two-way sync with GitHub

<a id="authors"></a>

👥 Authors

  • ackrome — UI/UX & Documentation
  • kvdep — Core Development & Testing

📎 Useful Links


💡 "CrowdGit helps you focus on learning, not file management."

About

CrowdGit — это приложение, разработанное для упрощения процесса синхронизации и управления учебными материалами, размещенными на платформе GitHub. Оно предназначено для всех, кто работает с учебными материалами на GitHub.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors