Git Product home page Git Product logo

gpg-group-chat's People

Contributors

lm-rodrigues avatar rsip22 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

eduardoabach

gpg-group-chat's Issues

Implement a simple client mode

Implement a simple client that must connect to a gpg-group-chat server instance and send messages in plain text by now

Implement message encryption

The client should encrypt every message before send to a server instance using GPG.

The messages can be encrypted to user's own key and its ID can be hard coded on code by now

Implement Protocol case #6

That message the client should send to server each 5 seconds.

The server should close the connection with the client that doesn't sent this notice in 1 minute

More details #10

Implement the custom protocol

Based on the team members discussion we have to implement the protocol to client - server communication.

This issue scope is to create a logic that identify the cases below and call a class responsible for that logic.

This issue scope doesn't cover implement all those cases logic.

The issues for implement the cases logic are:
Case1: #16
Case2: #11
Case3: #12
Case4: #13
Case5: #14
Case6: #15

Protocol cases:

Case 1 - new user ask to connect to the server:

  • C -> S hello
  • C -> S I am "nickname", "PGP key fingerprint"
  • S -> C accepted or not accepted
  • S -> users connected
  • S -> C {[ "nick1": "fingerprint1", "nick2": "fingerprint2", ... ]}

Case 2 - notification that new user connects to the server:

  • S -> C new user connected
  • S -> C { "new_nick": "new_fingerprint" }

Case 3 - send message:

  • C -> S send message
  • C -> S block PGP message

Case 4 - receive message:

  • S -> C receive message
  • S -> C block PGP message

Case 5 - notification that user disconnects:

  • S -> C user disconected
  • S -> C "nickname"

Case 6 - keep alive notice:

  • C -> S keep alive
  • S -> C ok

Implement a simple server mode

Implement a simple server mode that by now, should just accept a connection and log on stdout every received message.

The configuration like listen port can be hard coded on the code by now

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.