PyComms is a scalable real-time communication platform built with Django Channels and WebRTC. The application enables users to engage in real-time voice and text interactions, offering rich features like team collaboration, direct communication, and user management.
Whether you're creating teams, managing channels, or diving into a multi-voice session within a single channel, PyComms is designed to facilitate seamless communication experiences with user-friendly features and backend efficiency.
-
User Authentication:
- Signup and Signin.
- Profile settings for personalized user experiences.
-
Channels:
- Create and manage channels.
- Support for multiple simultaneous voice sessions in a single channel.
- Channels-based chats (real-time).
-
Real-Time Communication:
- WebRTC-powered voice communication.
- Backend powered by Django Channels.
- Rate-limiting features to handle spam.
-
Teams and Collaboration:
- Create and manage teams.
- Assign and modify team roles.
-
Friends Management:
- Add friends.
- View friend list.
- Direct calls and chats with friends.
-
User Interaction:
- Search for users.
- Manage user accounts.
-
Channel Ranks:
- Role management within channels, including Owner, Admin, and Member functionalities.
- Backend: Django with Django Channels for real-time communication.
- Frontend: Bootstrap for responsive UI and JavaScript for interactivity.
- Real-Time Features: WebRTC for voice communication and Redis for Django Channels layers.
- Database: PostgreSQL (or any database of your choice).
# Clone the repository or download it from Zip
git clone https://github.com/saeedmasoudie/pycomms.git
# Navigate to the project directory
cd pycomms
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
source venv/bin/activate # Unix/Linux
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run migrations
python manage.py migrate
# Start the development server
python manage.py runserver
- Setup your Database (Recomended -> PostgreSQL) - dont use SQLite
- Change Setting File in Project
- Navigate to http://localhost:8000.
- Sign up or log in.
- Explore the available functionalities, such as creating channels or chatting in real time.
- Work with channels, chats, and multi-voice sessions.
This project is a work in progress, and contributions are welcome! If you'd like to collaborate:
- Fork the repository.
- Create a feature branch (git checkout -b feature-name).
- Commit your changes (git commit -m "Add feature-name").
- Push your branch and create a pull request.
PyComms is under active development. While several core features are functional, others are still being implemented. Feel free to explore and contribute!
For questions or collaboration:
- Name: Saeed or Eric
- Email: Saeed.masoodi@yahoo.com
- Portfolio/Website: SaeedMasoudie.ir
- Dash Ui and Bootstrap For Frontend