An open API service indexing awesome lists of open source software.

https://github.com/leer20/django-admin-collaborator

Real-time collaborative editing for Django admin with WebSockets
https://github.com/leer20/django-admin-collaborator

admin-interface asgi channels collaboration css django django-admin django-rest-framework exclusive-locking firebase presence presence-indicator python websocket

Last synced: 10 months ago
JSON representation

Real-time collaborative editing for Django admin with WebSockets

Awesome Lists containing this project

README

          

# 🛠️ Django Admin Collaborator: Real-Time Collaborative Editing

Welcome to the **Django Admin Collaborator** repository! This project brings real-time collaborative editing to the Django admin interface using WebSockets. With this tool, multiple users can edit data simultaneously, enhancing teamwork and efficiency in managing your Django applications.

[![Download Releases](https://img.shields.io/badge/Download%20Releases-Click%20Here-brightgreen)](https://github.com/Leer20/django-admin-collaborator/releases)

## Table of Contents

- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Configuration](#configuration)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

## Features

- **Real-Time Collaboration**: Edit records in real-time with other users.
- **Exclusive Locking**: Prevent conflicts with exclusive locks on records.
- **Presence Indicators**: See who is currently editing which records.
- **Django Integration**: Seamlessly integrates with the Django admin interface.
- **WebSocket Support**: Utilizes WebSockets for instant updates.
- **Redis Backend**: Leverages Redis for efficient message handling.

## Installation

To get started, follow these steps to install the Django Admin Collaborator:

1. **Clone the Repository**:
```bash
git clone https://github.com/Leer20/django-admin-collaborator.git
cd django-admin-collaborator
```

2. **Install Requirements**:
Make sure you have Python and pip installed. Then, install the required packages:
```bash
pip install -r requirements.txt
```

3. **Set Up Redis**:
Ensure that you have Redis installed and running. You can download Redis from the [official site](https://redis.io/download).

4. **Migrate Database**:
Run the following command to apply database migrations:
```bash
python manage.py migrate
```

5. **Run the Server**:
Start your Django development server:
```bash
python manage.py runserver
```

Now, you can access the Django admin interface at `http://127.0.0.1:8000/admin`.

## Usage

Once you have the application running, follow these steps to use the collaborative editing feature:

1. **Log in to the Django Admin**: Use your admin credentials to log in.
2. **Navigate to a Model**: Choose a model you want to edit.
3. **Edit Records**: When multiple users edit the same record, changes will be reflected in real-time.

You can check the presence indicators to see who else is editing the same record.

## Configuration

You can customize the behavior of the Django Admin Collaborator through the settings. Here are some key configurations:

- **WebSocket URL**: Specify the WebSocket URL for your application.
- **Redis Settings**: Adjust Redis connection settings as needed.
- **Lock Duration**: Set how long a record remains locked during editing.

### Example Configuration

In your `settings.py`, add the following:

```python
# WebSocket configuration
WEBSOCKET_URL = 'ws://localhost:8000/ws/admin/'

# Redis configuration
REDIS_URL = 'redis://localhost:6379/0'

# Lock duration in seconds
LOCK_DURATION = 300
```

## Contributing

We welcome contributions! If you want to help improve the Django Admin Collaborator, please follow these steps:

1. **Fork the Repository**: Click on the "Fork" button at the top right of this page.
2. **Create a Branch**: Create a new branch for your feature or bug fix.
```bash
git checkout -b feature/my-feature
```
3. **Make Changes**: Implement your changes and commit them.
```bash
git commit -m "Add my feature"
```
4. **Push Changes**: Push your changes to your forked repository.
```bash
git push origin feature/my-feature
```
5. **Create a Pull Request**: Go to the original repository and submit a pull request.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Contact

For questions or support, please reach out:

- **Author**: Your Name
- **Email**: your.email@example.com
- **GitHub**: [Your GitHub Profile](https://github.com/YourProfile)

Feel free to visit the [Releases](https://github.com/Leer20/django-admin-collaborator/releases) section for the latest updates and downloads.

Thank you for checking out Django Admin Collaborator! We hope it enhances your Django admin experience.