{"id":17316920,"url":"https://github.com/real-yfprojects/ectec","last_synced_at":"2026-02-19T18:32:58.498Z","repository":{"id":38302024,"uuid":"315670505","full_name":"real-yfprojects/ectec","owner":"real-yfprojects","description":"An educational chat tool for learning how encrypted communication works [WIP]","archived":false,"fork":false,"pushed_at":"2025-03-10T19:50:28.000Z","size":1896,"stargazers_count":2,"open_issues_count":23,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-21T15:17:10.687Z","etag":null,"topics":["authentication","certification","chat","chat-application","chatapp","education","educational","educational-software","encryption","hash","hashing","network","networking","python","python3","sign","signing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/real-yfprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-24T15:15:17.000Z","updated_at":"2023-07-12T10:15:31.000Z","dependencies_parsed_at":"2023-12-25T21:27:23.360Z","dependency_job_id":"0aecc1fd-e7c3-4e83-9f15-8fc6f5f50706","html_url":"https://github.com/real-yfprojects/ectec","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/real-yfprojects/ectec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/real-yfprojects%2Fectec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/real-yfprojects%2Fectec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/real-yfprojects%2Fectec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/real-yfprojects%2Fectec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/real-yfprojects","download_url":"https://codeload.github.com/real-yfprojects/ectec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/real-yfprojects%2Fectec/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29627112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T18:02:07.722Z","status":"ssl_error","status_checked_at":"2026-02-19T18:01:46.144Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","certification","chat","chat-application","chatapp","education","educational","educational-software","encryption","hash","hashing","network","networking","python","python3","sign","signing"],"created_at":"2024-10-15T13:14:47.374Z","updated_at":"2026-02-19T18:32:58.480Z","avatar_url":"https://github.com/real-yfprojects.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003e\n    \u003cimg src=\"EctecIcon.svg\" width=256 alt=\"Ectec logo\" \u003e\n    \u003cdiv\u003eectec\u003c/div\u003e\n    \u003c/h1\u003e\n    \u003cp\u003e\u003csup\u003e\n    A educational chat tool for learning how encrypted communication works\n    \u003c/sup\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003c!-- Preview of the GUI --\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003cdiv\u003e\u003cimg src=\"media/ConnectAndServer.png\" width=80% alt=\"Disconnected client and server window\"\u003e\u003c/div\u003e\n    \u003cdiv\u003e\u003cimg src=\"media/UserClient.png\" width=80% alt=\"User client window connected to server\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n## Installation\n\nYou can install the ectec GUI as a python package/distribution or as a\nstandalone compiled executable. Both installation methods are explained in the following.\nIf you want to build ectec from source instead refer to the instructions\nin `python/ectec-gui/README.md`.\n\n### Install as a python package\n\nFirst you will need to install a recent version of\n[Python](https://www.python.org/) *(\u003e=3.7)* including the pip package installer.\nThen head to the latest release of this repository. Download either\nthe wheel distribution named `ectec-\u003cversion\u003e.whl` or the sdist distribution\nnamed `ectec-\u003cversion\u003e.tar.gz`.\nOpen a terminal in the folder you downloaded the\ndistribution to.\nRun the following with the file name of the archive you just downloaded:\n\n```bash\n\u003e pip3 install \u003cdistribution file name\u003e\n```\n\nAfter that you launch the two GUI programs with the commands `ectecgui-client`\nand `ectecgui-server`.\n\n### Install as standalone executable\n\nThis distribution doesn't require installing python since all dependencies\nincluding python are contained in this distribution. The distribution contains\ncompiled files and two platform specific executables that start the GUI.\nTherefore there are three different versions of this distribution - one for\neach common operating system: Linux, Windows and MacOS.\nTo get started you simply have to download the archive for your OS and\nextract its contents. There you will find the executables that launch the app.\nThis installation method doesn't install the application system-wide but\ninstead supplies a portable version of the app that is contained in one\nfolder.\n\n\n## User Guide\n\nThe chattool consists of two programs (graphical user interfaces).\nOne of them starts a server that the other program (called client)\ncan connect to. All clients connected to the same server can exchange\nmessages. A client can connect to a server on the same machine or on a\ndifferent one. If one wants to connect to a remote server, one has to\nknow the ip address and the port the server is running on. They are\ndisplayed in the server program (GUI).\n\nThe client GUI allows sending the messages to the other server. The messages\nare passed to the server that forwards them to the other clients. A message\nconsists of a body with text one or multiple receivers and a sender.\nA client sending a message can't be sure that only the specified receivers\nreceive/read the message. A receiver cannot be sure that it actually originates\nfrom the specified sender. That seems impractical for a chat tool.\nHowever, this is how the internet works and this chat tool tries to simulate the internet.\n\n## Features and Roadmap\n\nCurrently the tool only supports limited functionality. One can connect to a server, send and receive messages. The user can specify different senders and receivers for a sent message. The server is able to list connected clients, block new incoming connections when the option is selected and kick clients from the server. This feature set is not sufficient for learning how encrypted communication works. However this project is under continous development. The planned features and their order as well as timely scope of implementation are laid out in the [roadmap](./plan/ROADMAP.md).\n\n## Issues and Contributing\n\nIf the program raises an error, something doesn't work as expected or you\njust found something that could be improved, you're welcome to submit an\nissue report on the repository page of this project\nthat can be found on [Github](https://github.com/real-yfprojects/ectec).\n\nWhen opening an issue choose the appropriate template (bug report, feature request, …). Other types of feedback for which no template exists are welcome\nnonetheless. Then fill in the template. You may omit some parts of it but the\ntemplates usually request the information actually needed for solving an issue.\n\nContributions to this project are accepted with thanks.\nIf you want to help, you have many possibilities: coding, writing\ndocumentation or guides, testing or just giving feedback.\n\n## Copyright and Licensing\n\nCopyright and licensing information can be found in the file `LICENSE` which should be in the same folder as this file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freal-yfprojects%2Fectec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freal-yfprojects%2Fectec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freal-yfprojects%2Fectec/lists"}