Skip to main content

A cross-platform terminal-based real-time chat application built with Python.

Project description

SHANTER

A cross-platform terminal-based real-time chat application built with Python.

SHANTER is a lightweight terminal chat application that enables users to communicate in real time over TCP. It provides a simple command-line interface for registering accounts, authenticating users, searching for other users, and exchanging messages across Windows, macOS, and Linux.


✨ Features

  • 🔐 Secure user registration with password hashing (bcrypt)
  • 👤 User authentication (login/logout)
  • 🔍 Search for registered users
  • 💬 Real-time one-to-one messaging
  • 🌍 Cross-platform support (Windows, macOS, Linux)
  • 🖥️ Interactive command-line interface
  • 📦 Installable as a Python package
  • ⚡ Lightweight TCP socket-based architecture

📁 Project Structure

shanter/
├── client/        # Client application
├── common/        # Shared protocol and utilities
├── server/        # Server implementation
├── tests/         # Tests
├── data/          # SQLite database
├── pyproject.toml
├── README.md
└── LICENSE

🚀 Installation

Clone the repository:

git clone https://github.com/shreyash9999/shanter.git
cd shanter

Create and activate a virtual environment:

macOS / Linux

python3 -m venv .venv
source .venv/bin/activate

Windows

python -m venv .venv
.venv\Scripts\activate

Install SHANTER:

pip install -e .

▶️ Running SHANTER

Start the server

python3 -m server.main

Start the client

Open another terminal and run:

shanter

💻 Available Commands

Once SHANTER starts, you can use the following commands:

Command Description
register Create a new account
login Log in to an existing account
search Search for registered users
chat Start a conversation with another user
whoami Display the currently logged-in user
logout Log out of the current session
help Show available commands
exit Exit SHANTER

🏗️ Architecture

          +----------------------+
          |      Client CLI      |
          +----------+-----------+
                     |
                     |
              TCP Socket
                     |
                     |
          +----------v-----------+
          |    SHANTER Server    |
          +----------+-----------+
                     |
             SQLite Database

🛠️ Technologies Used

  • Python 3.11+
  • TCP Sockets
  • SQLite
  • bcrypt
  • Threading
  • JSON-based communication protocol

🗺️ Roadmap

Version 1.0

  • ✅ User Registration
  • ✅ User Login
  • ✅ User Search
  • ✅ Real-time One-to-One Messaging
  • ✅ Interactive CLI
  • ✅ Cross-platform Support

Planned for Future Releases

  • Group Chat
  • File Transfer
  • Online Presence
  • Message History
  • End-to-End Encryption
  • Rich Terminal User Interface
  • Notifications

🤝 Contributing

Contributions, ideas, and bug reports are welcome.

If you discover a bug or have a feature request, please open an issue or submit a pull request.


📄 License

This project is licensed under the MIT License.

See the LICENSE file for details.


👨‍💻 Author

Shreyash Dongare

GitHub: https://github.com/shreyash9999

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shanter-1.0.0.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shanter-1.0.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file shanter-1.0.0.tar.gz.

File metadata

  • Download URL: shanter-1.0.0.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for shanter-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e37848757f4a36718acce28ef76722456332dca83e0b437316744cc7e791f899
MD5 8549a558b4c59a051a35f406e952905e
BLAKE2b-256 39234187980ce5c840100f3096cb27e53108a777e6bb18e2096524b4adcbe55b

See more details on using hashes here.

File details

Details for the file shanter-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: shanter-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for shanter-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3724d9bb8499b6c22c0ace70637f957c2a72a37fde4f8b940d1332ed6a0c042d
MD5 b7a891e8bb9cd32d4f77c7ae54499698
BLAKE2b-256 ca69fb1ceb16c9b37c7dd93edb00b0d571e79146f0c923f4d1481b3f1066bea9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page