docs_sync
is a comprehensive project designed to facilitate document synchronization across various platforms including Android, iOS, Web, and Desktop. It leverages Flutter for the client-side application, ensuring a seamless user experience across devices, and Node.js with Express.js for the server-side logic, managing backend operations and API endpoints. Mongoose is also used for MongoDB object modelling.
- Cross-platform document synchronization.
- Real-time updates and syncing using sockets.
- Secure authentication and authorization mechanisms.
- RESTful API for efficient data exchange between client and server.
- Flutter Riverpod (State Management)
- Go-Router (Routing)
- Google Sign In (Google Auth)
- HTTP (Networking)
- Flutter Quill (Text Editing)
- Socket IO Client (Real-time Communication)
Ensure you have Node.js installed on your system. You can download it from Node.js official website.
For Flutter development, ensure you have the latest stable version of Flutter SDK installed. Follow the installation guide on the Flutter official website.
1. Clone the Repository: Open your terminal and clone the "Docs Sync" repository to your local machine:
$ git clone https://github.com/dubemezeagwu/docs_sync
2. Navigate to the Project Folder: Change your working directory to the project folder:
$ cd docs_sync
- Navigate to the server directory.
- Install dependencies by running
npm install
. - Start the server by running
npm start
.
- Navigate to the client directory.
- Ensure Flutter is set up correctly on your system.
- Run
flutter pub get
to fetch dependencies. - Start the Flutter application by running
flutter run
.
The server provides several API endpoints for managing documents and users. Refer to the /routes
directory for detailed route definitions and expected request/response formats.
Use the Flutter application to synchronize documents across devices. The application will automatically sync changes made to documents in real-time.
Contributions to improve the functionality and performance of docs_sync
are welcome. Please feel free to submit pull requests or open issues for discussion.
This project is licensed under the MIT License. See the LICENSE file for more details.