A real-time messaging platform built with Python and Flask.
Relay is a web-based messaging application designed to support communication between individuals and groups. It brings together direct messaging, channel-based discussions, group conversations, file sharing, notifications, and message reactions in a unified platform.
The project explores the development of interactive messaging systems, combining backend application logic with real-time communication and user-focused collaboration features.
- Exchange messages through an interactive messaging interface.
- Support real-time communication using the project's implemented messaging mechanisms.
- Share supported content and attachments within conversations.
- Organise discussions into channels around specific topics or groups.
- Support group conversations for communication among multiple participants.
- Keep conversations structured and accessible.
- Enable private conversations between individual users.
- Support one-to-one communication alongside channel and group discussions.
- Allow users to share supported files or media within conversations, where implemented.
- Bring shared content closer to the discussions it relates to.
- Notify users about relevant messaging activity.
- Help users keep track of incoming messages and ongoing conversations.
- Allow users to react to messages using supported reactions.
- Provide a lightweight way to acknowledge messages without adding another reply.
- Support user profile customisation.
- Display profile information and other supported user-specific details.
- Language: Python
- Backend Framework: Flask
- Communication: WebSocket-related functionality, where configured
- Testing: Pytest
- Code Quality: Pylint
- Coverage: Coverage configuration
Relay is organised around the backend application and its supporting components. Its primary responsibilities include handling application requests, managing messaging-related functionality, organising conversations, and supporting communication between users.
Key engineering areas include:
- Backend development using Python and Flask.
- Real-time communication in web applications.
- Managing direct, group, and channel-based conversations.
- Integrating messaging features with notifications and user profiles.
- Testing and maintaining application code.
Relay/
├── src/ # Application source code
├── .coveragerc # Test coverage configuration
├── .gitignore # Git exclusions
├── .gitlab-ci.yml # CI pipeline configuration
├── .pylintrc # Python linting configuration
├── pytest.ini # Pytest configuration
└── README.md # Project documentation
- Python version compatible with the project.
- Project dependencies installed from the applicable dependency file.
- Any required environment variables or supporting services configured.
Clone the repository:
git clone https://github.com/ChasingTheDream369/relay.git
cd relayCreate and activate a virtual environment:
python -m venv .venvmacOS/Linux
source .venv/bin/activateWindows
.venv\Scripts\activateInstall the dependencies using the project's dependency configuration, then follow the application entry point and configuration instructions in the source code to launch the server.
Note: Confirm the dependency file, application entry point, and startup command before publishing these setup instructions as final. The repository's exact execution workflow has not been verified here.
The repository includes configuration for Pytest, Pylint, and test coverage.
Use these tools to validate application behaviour, identify code-quality issues, and measure test coverage as part of the development workflow.
- More granular channel and group permissions.
- Search across messages and conversation history.
- Configurable notification preferences.
- Improved connection handling and messaging reliability.
- Expanded automated tests and deployment documentation.
These are potential enhancements rather than claims about existing functionality.
Refer to the repository's license file for licensing terms.