Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oleoneto/vestlus
Vestlus is a Django chat app with support for private and public channels.
https://github.com/oleoneto/vestlus
django django-channels django-crispy-forms django-haystack django-rest-framework
Last synced: about 2 months ago
JSON representation
Vestlus is a Django chat app with support for private and public channels.
- Host: GitHub
- URL: https://github.com/oleoneto/vestlus
- Owner: oleoneto
- License: bsd-3-clause
- Created: 2020-04-30T23:01:51.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-07-23T00:57:36.000Z (over 4 years ago)
- Last Synced: 2024-10-12T07:15:12.811Z (2 months ago)
- Topics: django, django-channels, django-crispy-forms, django-haystack, django-rest-framework
- Language: Python
- Homepage:
- Size: 72.3 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Django Vestlus
**vestlus** is a django chat app with support for private and public channels.
![PyPI - License](https://img.shields.io/pypi/l/django-vestlus)
![PyPI - Version](https://img.shields.io/pypi/v/django-vestlus)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-vestlus)
![PyPI - Downloads](https://img.shields.io/pypi/dm/django-vestlus)
![Github - Issues](https://img.shields.io/github/issues/lehvitus/vestlus)#### Dependencies
Use of **vestlus** requires:
- `django-polymorphic`: used to handle inheritance between message models.
- `django-crispy-forms`: used for better formatting of forms in templates.
- `django-restframework`: used to provide REST api support.
- `django-haystack`: used to handle searching across channels and messages.Those apps will need to be installed in the ``INSTALLED_APPS`` tuple of your django project.
#### Models
The app is split into three main models:
- [channel](vestlus/models/channel.py): channels allow for group conversations. Any message sent to a channel
is visible to every member of the channel. Channels can be either public or private.
- [membership](vestlus/models/membership.py): memberships allow users to join, leave, and administer channels.
Owners and admins can manage channel memberships.
- [message](vestlus/models/message.py): all messages are private (self to self); private (shared with somebody else); or#### Installation
1. Add **vestlus** to your `INSTALLED_APPS` setting like this::
```python
INSTALLED_APPS = [
# other apps...
'vestlus',
]
```Alternatively, you can also add this app like so::
```python
INSTALLED_APPS = [
# other apps...
'vestlus.apps.VestlusConfig',
]
```2. Include the polls URLconf in your project urls.py like this::
```python
path('chat/', include('vestlus.urls', namespace='vestlus')),
```2.1. Optionally, you can also add the api endpoints in your project urls.py like so::
```python
path('api/', include('vestlus.api', namespace='vestlus_api')),
```3. Run ``python manage.py migrate`` to create the app models.
4. Start the development server and visit [`http://127.0.0.1:8000/admin/`](http://127.0.0.1:8000/admin/)
to start a add chat groups and messages (you'll need the Admin app enabled).5. Visit [`http://127.0.0.1:8000/chat/`](http://127.0.0.1:8000/admin/) to use the app. You should have the following urls added to your url schemes::
```
http://127.0.0.1:8000/chat/
http://127.0.0.1:8000/chat/channels/
http://127.0.0.1:8000/chat/channels/new/
http://127.0.0.1:8000/chat/channels/
http://127.0.0.1:8000/chat/channels//messages//delete
http://127.0.0.1:8000/chat/channels//delete
http://127.0.0.1:8000/chat/channels//messages/new/
http://127.0.0.1:8000/chat/memberships/
http://127.0.0.1:8000/chat/memberships/
http://127.0.0.1:8000/chat/memberships//new/
http://127.0.0.1:8000/chat/messages/
http://127.0.0.1:8000/chat/messages/
http://127.0.0.1:8000/chat/messages//delete
```5.1. If you've included the api urls as well, you can visit the endpoints by visiting::
```
http://127.0.0.1:8000/api/channels
http://127.0.0.1:8000/api/channels/
http://127.0.0.1:8000/api/channels/
http://127.0.0.1:8000/api/channels//messages
http://127.0.0.1:8000/api/channels//messages
http://127.0.0.1:8000/api/channels/me
http://127.0.0.1:8000/api/group-messages
http://127.0.0.1:8000/api/group-messages/
http://127.0.0.1:8000/api/memberships
http://127.0.0.1:8000/api/memberships/
http://127.0.0.1:8000/api/messages
http://127.0.0.1:8000/api/messages/
http://127.0.0.1:8000/api/messages/notes
```## License
**vestlus** is [BSD-Licensed](LICENSE.md).------
Built with [django-clite](https://github.com/oleoneto/django-clite).
Developed and maintained by [Leo Neto](https://github.com/oleoneto)