Git Product home page Git Product logo

echo's Introduction

ECHO

ECHO is a modern and lightweight chat application designed for seamless communication in a command-line environment. With ECHO, users can engage in real-time text-based conversations without the need for a graphical user interface, making it perfect for those who prefer a distraction-free chatting experience.

ECHO offers a clean and intuitive Terminal User Interface (TUI) that allows users to navigate, send messages, and manage channels effortlessly. It supports multiple channels, enabling users to create, join, and switch between different conversation channels based on their interests or preferences.

Key Features

  • User Authentication: Secure login ensures that only authorized users can access the chat application.
  • Persistent Login: Enjoy seamless access to your account with persistent login functionality.
  • Multiple Channels: Create, join, and manage channels to facilitate conversations on various topics.
  • Real-time Messaging: Instantly send and receive messages within the application.
  • Chat History: When entering a channel, all previous messages are loaded for a seamless conversation history.

Usage

  • Install ECHO globally using npm:
    • Run npm install echo-chat -g on Windows systems.
    • Run sudo npm install echo-chat -g on Unix-like systems.
  • Run echo-chat in the terminal.

Contributing

Contributions are welcome to both the server-side and client-side components of ECHO. Whether it's bug fixes, feature enhancements, or documentation improvements, all forms of contributions are appreciated.

Getting Started

To contribute, follow these steps:

  • Fork the repo.
  • Clone your forked repository to your local machine.
  • Create a new branch (git checkout -b improve-feature)
  • Make the necessary changes.
  • Test the changes thoroughly.
  • Commit your changes (git commit -am 'Improve feature').
  • Push to the branch (git push origin improve-feature).
  • Create a Pull Request.

Client Development

For client-side development:

  • Install Dependencies: Run npm install to install the necessary dependencies.
  • Start the client: Run npm start to start the server or npm watch to watch for changes.
  • Linting: Ensure linting is correct by running npm run lint or npm run fix-lint to fix linting problems.

Server Development

Before starting server development, ensure you have the necessary configurations in place:

Clients

Ensure you have the following clients running:

  • MongoDB Client: Ensure you have MongoDB client running.
  • Redis Client: Ensure you have Redis client running.

Environment Configuration

To run this project, you need to set up your environment variables.

Create a file named .env in the server directory and add the following configuration:

ENV="dev"
PORT=server_port
MONGO_URI=your_mongo_uri
SECRET_KEY=your_secret_key
SALT_ROUNDS=your_desired_number

Run The Server

  • Install Dependencies: Run npm install to install the necessary dependencies.
  • Start the Server: Run npm start to start the server or npm watch to watch for changes.
  • Linting: Ensure linting is correct by running npm run lint or npm run fix-lint to fix linting problems.

Feedback

If you find a bug or want to request a new feature:

License

This project is licensed under the MIT License - see the LICENSE file for more details.

Author

Yousef Saeed: GitHub LinkedIn X

echo's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.