A real-time collaborative document editing system with conflict resolution and performance optimization basically it will be obsidian with AI.
- Real-time document collaboration using WebSocket
- Document version control and conflict resolution
- High-performance caching with Redis
- Scalable message queue system using RabbitMQ
- RESTful API endpoints for document CRUD operations
- Authentication and authorization
- Monitoring and performance metrics
- Backend: Python (FastAPI)
- Database: MongoDB
- Caching: Redis
- Message Queue: RabbitMQ
- Frontend: React + Vite
DocSync/
βββ backend/
β βββ src/
β β βββ models/ # Pydantic models
β β βββ routers/ # API endpoints
β β βββ settings/ # Configuration
β β βββ utils/ # Helper functions
β βββ main.py # Application entry point
β βββ requirements.txt # Python dependencies
-
Clone the repository
git clone https://github.com/yourusername/DocSync.git cd DocSync -
Set up virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r backend/requirements.txt
-
Set up environment variables Create a
.envfile in the backend directory:MONGODB_URI=mongodb://localhost:27017 REDIS_URL=redis://localhost:6379 RABBITMQ_URL=amqp://guest:guest@localhost:5672
-
Run the application
cd backend python main.py
The server will start at http://localhost:8000
Once the server is running, visit:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
pytest backend/testsThe application can be deployed using Docker:
docker compose up -dMIT License
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request