Git Product home page Git Product logo

minislack-client's Introduction

Minislack - Client

Project Description

This project creates the Client side of a Command Line version of Slack. Users get connected to a server where users and channels are hosted to exchange messages and files.

Technical Details

  • This project uses the net package of Golang to create a connection with the server and exchange commands and information.
  • The data flows in bytes in both directions.
  • Mainly, the client sends commands and receives notifications from the server to be printed in the CLI. The exceptions are:
    • Sending files: in this case the client has to open the file, read it and send the bytes in the command to the server.
    • Getting files: in this case the client receives the bytes of the requested files, creates a file and saves it in the ./download/ folder
  • Custom Protocol: the protocol used to support the communication between client and server was designed for this project and is based in TCP. To check the protocol please refer to the server-side repository here.

How to use

  1. First of all you need to have Go installed in your machine. For info about this point go to the Download page of the official site.
  2. Complete the step by step of how to run the server first. If the server isn't running when you try the next steps, you won't be able to establish a connection and use the software.
  3. Clone this repo in your computer: git clone.
  4. For each client you must open a new session in your terminal. Use go run . to start your client. This automatically tries a connection to 127.0.0.1:3000, so remember that the server should be up by now in order to create a proper connection. From this moment you are now free to register yourself and use minislack :D. Remember to check the procotol in the server repository.

minislack-client's People

Contributors

wfercanas avatar

Stargazers

Roman avatar

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.