vestlus is a django chat app with support for private and public channels.
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.
The app is split into three main models:
- channel: 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: memberships allow users to join, leave, and administer channels. Owners and admins can manage channel memberships.
- message: all messages are private (self to self); private (shared with somebody else); or
- Add vestlus to your
INSTALLED_APPS
setting like this::
INSTALLED_APPS = [
# other apps...
'vestlus',
]
Alternatively, you can also add this app like so::
INSTALLED_APPS = [
# other apps...
'vestlus.apps.VestlusConfig',
]
- Include the polls URLconf in your project urls.py like this::
path('chat/', include('vestlus.urls', namespace='vestlus')),
2.1. Optionally, you can also add the api endpoints in your project urls.py like so::
path('api/', include('vestlus.api', namespace='vestlus_api')),
-
Run
python manage.py migrate
to create the app models. -
Start the development server and visit
http://127.0.0.1:8000/admin/
to start a add chat groups and messages (you'll need the Admin app enabled). -
Visit
http://127.0.0.1:8000/chat/
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/<slug:slug>
http://127.0.0.1:8000/chat/channels/<slug:channel>/messages/<slug:slug>/delete
http://127.0.0.1:8000/chat/channels/<slug:slug>/delete
http://127.0.0.1:8000/chat/channels/<slug:slug>/messages/new/
http://127.0.0.1:8000/chat/memberships/
http://127.0.0.1:8000/chat/memberships/<slug:slug>
http://127.0.0.1:8000/chat/memberships/<slug:slug>/new/
http://127.0.0.1:8000/chat/messages/
http://127.0.0.1:8000/chat/messages/<slug:slug>
http://127.0.0.1:8000/chat/messages/<slug:slug>/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/<pk>
http://127.0.0.1:8000/api/channels/<uuid>
http://127.0.0.1:8000/api/channels/<pk>/messages
http://127.0.0.1:8000/api/channels/<uuid>/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/<pk>
http://127.0.0.1:8000/api/memberships
http://127.0.0.1:8000/api/memberships/<uuid>
http://127.0.0.1:8000/api/messages
http://127.0.0.1:8000/api/messages/<pk>
http://127.0.0.1:8000/api/messages/notes
vestlus is BSD-Licensed.
Built with django-clite.
Developed and maintained by Leo Neto