This project is a Google Docs clone built with Angular for the frontend, Angular Material Design for the UI components, Quill.js for the rich text editor, and a backend API developed using ASP.NET Core with the repository pattern. The API is documented using Swagger OpenAPI documentation, and Entity Framework Core is used for database access with SQLite as the underlying database engine.
User registration and authentication- Create, edit, and delete documents
Collaborative real-time editing- Rich text formatting using Quill.js
Document sharing and permissions managementRevision history and version controlSearch functionality
Demo of the frontend with fake backend version here Demo
Before running the application, make sure you have the following installed:
- Node.js (version X.X.X)
- Angular CLI (version X.X.X)
- .NET Core SDK (version X.X.X)
- SQLite database engine (version X.X.X)
- Clone the repository:
git clone https://github.com/alameenboss/google-docs-clone.git
- Frontend setup:
- Navigate to the
frontend
directory:
cd google-docs-clone/frontend
- Install dependencies:
npm install
- Backend setup:
- Navigate to the backend directory:
cd ../backend
- Install dependencies:
dotnet restore
- Database setup:
- Open the appsettings.json file in the backend directory.
- Update the ConnectionStrings section to configure the SQLite database path.
- Apply migrations to create the database:
dotnet ef database update
- Start the frontend:
- Navigate to the frontend directory:
cd google-docs-clone/frontend
- Run the development server:
ng serve
Access the frontend application at http://localhost:4200.
- Start the backend:
- Navigate to the backend directory:
cd google-docs-clone/backend
- Run the API server:
dotnet run
The API server will be available at http://localhost:5000.
- Access Swagger API documentation: Open your browser and navigate to http://localhost:5000/swagger.
Contributions are welcome! If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them.
- Push your changes to your fork.
- Submit a pull request.
This project is licensed under the MIT License.