From f156941cd82af14721bd467e13f35ce0650ce504 Mon Sep 17 00:00:00 2001 From: CarterPerez-dev Date: Wed, 29 Apr 2026 01:42:05 -0400 Subject: [PATCH] docs(encrypted-p2p-chat): add DEMO.md with UI screenshots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Walks through the full flow — passkey registration, passkey login, new conversation lookup, empty thread, first message, end-to-end chat, and mobile view — matching the format used by the bug-bounty and SIEM project demos. --- PROJECTS/advanced/encrypted-p2p-chat/DEMO.md | 89 ++++++++++++++++++ .../encrypted-p2p-chat/assets/images/chat.png | Bin 0 -> 22092 bytes .../assets/images/empty-conversation.png | Bin 0 -> 17330 bytes .../assets/images/first-message.png | Bin 0 -> 17525 bytes .../assets/images/login.png | Bin 0 -> 16401 bytes .../assets/images/mobile.png | Bin 0 -> 16809 bytes .../assets/images/new-conversation.png | Bin 0 -> 23453 bytes .../assets/images/register.png | Bin 0 -> 18933 bytes 8 files changed, 89 insertions(+) create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/DEMO.md create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/assets/images/chat.png create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/assets/images/empty-conversation.png create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/assets/images/first-message.png create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/assets/images/login.png create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/assets/images/mobile.png create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/assets/images/new-conversation.png create mode 100644 PROJECTS/advanced/encrypted-p2p-chat/assets/images/register.png diff --git a/PROJECTS/advanced/encrypted-p2p-chat/DEMO.md b/PROJECTS/advanced/encrypted-p2p-chat/DEMO.md new file mode 100644 index 00000000..fbb1e1e8 --- /dev/null +++ b/PROJECTS/advanced/encrypted-p2p-chat/DEMO.md @@ -0,0 +1,89 @@ + + + +
+ +```ruby +███████╗███╗ ██╗ ██████╗██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ +██╔════╝████╗ ██║██╔════╝██╔══██╗╚██╗ ██╔╝██╔══██╗╚══██╔══╝██╔════╝██╔══██╗ +█████╗ ██╔██╗ ██║██║ ██████╔╝ ╚████╔╝ ██████╔╝ ██║ █████╗ ██║ ██║ +██╔══╝ ██║╚██╗██║██║ ██╔══██╗ ╚██╔╝ ██╔═══╝ ██║ ██╔══╝ ██║ ██║ +███████╗██║ ╚████║╚██████╗██║ ██║ ██║ ██║ ██║ ███████╗██████╔╝ +╚══════╝╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═════╝ +``` + +**Demo & Preview** + +
+ + + Live Demo + + +
+ +```ruby +docker compose up -d → https://localhost +``` + +
+ +[Register](#register) · [Login](#login) · [New Conversation](#new-conversation) · [Empty Conversation](#empty-conversation) · [First Message](#first-message) · [Encrypted Messaging](#encrypted-messaging) · [Mobile View](#mobile-view) + +
+ +--- + +### Register + +Passwordless account creation with WebAuthn passkey enrollment — username and display name are the only fields, no password is ever entered or stored + +![Register](assets/images/register.png) + +--- + +### Login + +Passkey authentication with optional username field — leave blank to use a discoverable credential resolved by the authenticator + +![Login](assets/images/login.png) + +--- + +### New Conversation + +Username search resolves the recipient's identity key from the directory before any message is composed + +![New Conversation](assets/images/new-conversation.png) + +--- + +### Empty Conversation + +Fresh thread with E2EE badge and presence indicator — no plaintext history is ever stored on the server, so a new conversation truly starts empty + +![Empty Conversation](assets/images/empty-conversation.png) + +--- + +### First Message + +Outbound message encrypted client-side with the recipient's public key and pushed over WebSocket — the server only ever sees ciphertext + +![First Message](assets/images/first-message.png) + +--- + +### Encrypted Messaging + +Live two-way conversation with delivery timestamps and the lock indicator on every bubble confirming end-to-end encryption per message + +![Encrypted Messaging](assets/images/chat.png) + +--- + +### Mobile View + +Responsive single-pane layout with collapsible sidebar — passkey auth and E2EE work identically on mobile via the platform authenticator + +![Mobile View](assets/images/mobile.png) diff --git a/PROJECTS/advanced/encrypted-p2p-chat/assets/images/chat.png b/PROJECTS/advanced/encrypted-p2p-chat/assets/images/chat.png new file mode 100644 index 0000000000000000000000000000000000000000..2ade834b6a52429c09ea12ec53d5eac3508524ce GIT binary patch literal 22092 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 literal 0 HcmV?d00001 diff --git a/PROJECTS/advanced/encrypted-p2p-chat/assets/images/empty-conversation.png b/PROJECTS/advanced/encrypted-p2p-chat/assets/images/empty-conversation.png new file mode 100644 index 0000000000000000000000000000000000000000..9c41b3cd4f1314e2a3595814da7515877cdfa41f GIT binary patch literal 17330 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 z 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 C_(}5s literal 0 HcmV?d00001 diff --git a/PROJECTS/advanced/encrypted-p2p-chat/assets/images/login.png b/PROJECTS/advanced/encrypted-p2p-chat/assets/images/login.png new file mode 100644 index 0000000000000000000000000000000000000000..967e72ef0b1dc1412e5d6682cdd374beeb78455b GIT binary patch literal 16401 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 HF5dhnap&6- literal 0 HcmV?d00001 diff --git a/PROJECTS/advanced/encrypted-p2p-chat/assets/images/mobile.png b/PROJECTS/advanced/encrypted-p2p-chat/assets/images/mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..594fa324aece885df53ba2160aa2c199538f39b8 GIT binary patch literal 16809 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 aq1d4XDLw-8D^@gho8$J!ijSVV`9A>pfQf4W literal 0 HcmV?d00001 diff --git a/PROJECTS/advanced/encrypted-p2p-chat/assets/images/new-conversation.png b/PROJECTS/advanced/encrypted-p2p-chat/assets/images/new-conversation.png new file mode 100644 index 0000000000000000000000000000000000000000..472c432bd19153f4059d4be8cd3b42e03e23ad78 GIT binary patch literal 23453 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 literal 0 HcmV?d00001