Skip to content

A cross-platform desktop application built with ElectronJS for synchronizing files to Cloud storage services.

License

Notifications You must be signed in to change notification settings

TickLabVN/file-synchronizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Synchronizer

A cross-platform desktop application built with ElectronJS for synchronizing files to Cloud storage services.

Note: Because the server is deployed on Render, the first login may take a few seconds while the server starts up. Please wait for the loading indicator before proceeding.

Features

  • Cross-platform support (Windows, macOS, Linux)
  • Seamless file synchronization with Cloud storage services like Google Drive, Box,...
  • Real-time updates and conflict resolution
  • User-friendly interface built with React and styled using TailwindCSS
  • All synchronized files and folders are stored inside a folder named __ticklabfs_backup in your Cloud storage — please do not rename, move, or delete this folder, as doing so will break future backups.

Prerequisites

  • Node.js
  • npm
  • A Google Cloud Platform account
  • A Box Platform account

Installation

  1. Clone the repository:

    git clone https://github.com/BaoDuong254/file-synchronizer.git
    cd file-synchronizer
  2. Install Electron-vite dependencies:

    npm install
  3. Install backend dependencies:

    cd src/server
    npm install
  4. Install frontend dependencies:

    cd src/renderer
    npm install

Note: You can also download a release package for your operating system from the repository’s Releases page.

Configuration

  1. Copy the example environment file:

    cp .env.example .env
  2. Edit .env and set the following variables:

    • GOOGLE_CLIENT_ID
    • GOOGLE_CLIENT_SECRET
    • BOX_CLIENT_ID
    • BOX_CLIENT_SECRET
    • BACKEND_URL
  3. Setup credentials in Google Cloud Platform:

    • Create or select a project
    • Enable the Google Drive API and OAuth2
    • Create OAuth2 credentials for a Web Application
    • Copy the Client ID and Client Secret into your .env

Note: The setup steps are similar for other cloud providers—simply create the corresponding credentials and update the variables above.

Running the Application

  1. Start the backend server:

    npm run server
  2. Start the Electron app (in a separate terminal):

    npm run dev
  3. Login and sync:

    • The Electron window will open
    • Sign in with your Cloud account
    • Choose files or folders to synchronize

Contributing

We welcome contributions! To contribute:

  1. Fork the repository

  2. Create a branch for your feature or fix:

    git checkout -b feature/your-feature-name
  3. Make your changes and commit:

    git commit -m "Add feature X"
  4. Push to your branch:

    git push origin feature/your-feature-name
  5. Open a Pull Request on GitHub and describe your changes.

Reporting Issues

If you encounter any bugs or errors, please open an issue on GitHub and include:

  • Steps to reproduce the problem
  • Expected vs. actual behavior
  • Relevant logs or error messages

Note: This application is currently in development. If you find any issues or have suggestions for improvements, please report them or contribute via pull requests. We appreciate your feedback!

About

A cross-platform desktop application built with ElectronJS for synchronizing files to Cloud storage services.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •