Skip to content
ChasingTheDream369Public

About

A Python-based real-time messaging platform featuring direct and group chats, channels, file sharing, notifications, message reactions, and user profiles.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Relay

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.

Features

Real-Time Messaging

  • 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.

Channels and Group Conversations

  • Organise discussions into channels around specific topics or groups.
  • Support group conversations for communication among multiple participants.
  • Keep conversations structured and accessible.

Direct Messaging

  • Enable private conversations between individual users.
  • Support one-to-one communication alongside channel and group discussions.

File Sharing

  • Allow users to share supported files or media within conversations, where implemented.
  • Bring shared content closer to the discussions it relates to.

Notifications

  • Notify users about relevant messaging activity.
  • Help users keep track of incoming messages and ongoing conversations.

Message Reactions

  • Allow users to react to messages using supported reactions.
  • Provide a lightweight way to acknowledge messages without adding another reply.

User Profiles

  • Support user profile customisation.
  • Display profile information and other supported user-specific details.

Technology Stack

  • Language: Python
  • Backend Framework: Flask
  • Communication: WebSocket-related functionality, where configured
  • Testing: Pytest
  • Code Quality: Pylint
  • Coverage: Coverage configuration

Architecture

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.

Project Structure

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

Getting Started

Prerequisites

  • Python version compatible with the project.
  • Project dependencies installed from the applicable dependency file.
  • Any required environment variables or supporting services configured.

Installation

Clone the repository:

git clone https://github.com/ChasingTheDream369/relay.git
cd relay

Create and activate a virtual environment:

python -m venv .venv

macOS/Linux

source .venv/bin/activate

Windows

.venv\Scripts\activate

Install 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.

Testing and Code Quality

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.

Potential Future Improvements

  • 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.

License

Refer to the repository's license file for licensing terms.

About

A Python-based real-time messaging platform featuring direct and group chats, channels, file sharing, notifications, message reactions, and user profiles.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages