Skip to content

Ketan-Verma21/Google-Docs-Clone

Repository files navigation

Google Docs Clone

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.

Features

  • 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.

Screenshots

Auth Page Google Sign in Home Page Document Page Document edited Document link copied

Getting Started

To get a copy of the project up and running on your local machine, follow these simple steps.

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/Ketan-Verma21/Google-Docs-Clone.git
    cd gdocs
  2. Set up the backend:

    • Navigate to the server directory:
      cd server
    • Install the required dependencies:
      npm install
    • Create a .env file in the server 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
  3. 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 the client/android/app directory.
    • Run the app:
      flutter run

Folder Structure

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.

Contributing

We welcome contributions to enhance the Google Docs Clone! To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature-name).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature-name).
  5. Create a new Pull Request.

Contact

If you have any questions or feedback, feel free to reach out:

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published