Welcome to Google Docs Clone! This project is a real-time collaborative document editing application, inspired by Google Docs. Built with Flutter for the frontend and Node.js with Express.js for the backend, it uses MongoDB as the database and integrates Google authentication for user management.
- Real-time Collaboration: Edit documents in real-time with multiple users.
- User Authentication: Secure login using Google Authentication.
- Document Management: Create, edit, and delete documents.
- Shareable Links: Generate and share document links for collaboration.
- Rich Text Editing: Supports various text formatting options.
- Responsive Design: Optimized for both web and mobile platforms.
To get a copy of the project up and running on your local machine, follow these simple steps.
- Flutter SDK
- Node.js and npm
- MongoDB (or a MongoDB Atlas account)
- Google Cloud Platform account for Google Authentication
-
Clone the repository:
git clone https://github.com/Ketan-Verma21/Google-Docs-Clone.git cd gdocs
-
Set up the backend:
- Navigate to the
server
directory:cd server
- Install the required dependencies:
npm install
- Create a
.env
file in theserver
directory and add your MongoDB URI and Google OAuth credentials:MONGO_URI=your_mongo_uri GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret
- Start the server:
npm start
- Navigate to the
-
Set up the frontend:
- Navigate to the
client
directory:cd ..
- Install the required dependencies:
flutter pub get
- Ensure you have your Firebase project set up for Flutter and download the
google-services.json
file. Place it in theclient/android/app
directory. - Run the app:
flutter run
- Navigate to the
google-docs-clone/
|- client
| |- android
| |- build
| |- ios
| |- lib
| | |- components
| | |- models
| | |- pages
| | |- services
| | |- theme
| | |- main.dart
| |- test
| |- pubspec.yaml
|- server
| |- controllers
| |- models
| |- routes
| |- index.js
| |- package.json
| |- .env
- client: Contains the Flutter frontend code.
- components: Reusable UI components.
- models: Data models.
- pages: Screens and pages of the application.
- services: Services like authentication and database interactions.
- theme: Theme-related files for styling the app.
- main.dart: The entry point of the Flutter application.
- server: Contains the Node.js backend code.
- controllers: Functions to handle API requests.
- models: Mongoose models for MongoDB.
- routes: API endpoints.
- index.js: The entry point of the Node.js application.
We welcome contributions to enhance the Google Docs Clone! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature-name
). - Create a new Pull Request.
If you have any questions or feedback, feel free to reach out:
- Name: Ketan Verma
- Email: try.vrmketan@gmail.com
- GitHub: Ketan-Verma21