Skip to content

henryhale/telemate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeleMate

A small-scale messaging application for devs

Overview

👋 Hello World!

This project is based on the idea that two or more parties create a temporary room on the platform and communicate privately for a certain period of time. No account is required! Just choose your credentials.

How it works?

Alice and Bob meet physically and decide on the credentials to be used when creating a room and the time when they will be using the plaform.

Alice may select the Room (string), say Earth and Bob selects the Passcode (string), say 1234.

When the agreed time reaches, both use the same credentials on the platform to access the room.

A chat window is opened and once connected, communication may begin.

Live Demo

Here is a temporary demo of TeleMate: Click Here

Features

  • Lightweight and fast
  • Multiple chat windows for different rooms
  • Dark/Light mode
  • Command line interface
  • No database or tracking
  • Encryption
  • Third-party server option via URL (work in progress)

Anatomy of UI

Whenever a new room is created, a chat window pops up.

The title of the chat window follows the format: TM-{room} - [{users}]. room represents the actual room identifier in uppercase and users show the number of users in that room.

Other users in the room are notified of who has joined or disconnected.

To begin chatting, focus the chat window and type the message. Hit Enter key to send the message.

Once you're done, close the chat window to disconnect.

Development

To get started with development, follow these steps:

Prerequisites

Setup

  1. Fork or Clone this repository: git clone https://github.com/henryhale/telemate.git
  2. Navigate to the project directory: cd telemate
  3. Install dependencies: pnpm install
  4. Run development server: pnpm dev
  5. Separately run frontend dev server: pnpm exec vite client
  6. Building for production: pnpm serve

Browser Support

Supporting wide range of browsers is the goal. Modern browsers, most specifically the latest versions of Chrome, Firefox, Safari, and Edge (for desktop and mobile devices) are supported.

Acknowledgements

A big shoutout to these awesome projects, this project heavily relies on them;

  • xterminal - Build web-based command line interfaces
  • winbox - Modern HTML5 window manager for the web.
  • socket.io - node.js realtime framework server
  • helmet - help secure Express/Connect apps with various HTTP headers
  • express - Fast, unopinionated, minimalist web framework
  • toobusy-js - Don't fall over when your Node.JS server is too busy. Now without native dependencies!

Conclusion

Thank you for your interest in this project! Contributions from the developer community are greatly valued and appreciated, and your efforts will help make this project even better.

License

Copyright (c) 2023 Henry Hale.

Released under the MIT License.