Wells Chat is an end-to-end encrypted chat application built using .NET 8 and SignalR. This project contains two independent applications:
- A console application
- A MAUI application
The console application is a simple chat application that runs in the terminal. The MAUI application is a modern cross-platform chat application that runs on Android, iOS, macOS, and Windows. The project also includes a server application to facilitate communication between the client applications using a SignalR hub.
This open-source project demonstrates the capabilities of .NET 8, MAUI, SignalR and SyncFusion, and provides reference implementations for developers who want to build their own end-to-end encrypted chat applications.
-
End-to-End Encryption: All messages are encrypted on the sender's device and can only be decrypted by the chat participants. The server does not have access to the encryption keys and cannot decrypt the messages.
-
Real-Time Messaging: Built with SignalR, the app provides real-time, bidirectional communication between the server and the client.
-
User Authentication: Both the console app and the MAUI app include user authentication to ensure that only authorized users can access the chat. In this example, only users who are members of a specific Azure Active Directory B2C tenant can access the chat.
-
Group Chat: Both applications support group chat with multiple participants in a single chat room.
-
Cross-Platform: The MAUI app runs on multiple platforms including Android, iOS, macOS, and Windows with a single codebase.
-
Swipe Gestures & Context Menus: The MAUI app demonstrates use of swipe gestures for deleting messages and context menus for quick access to common actions, like copying a message to your clipboard and extracting URLs from messages.
-
UI Controls: Along with native XAML controls, the MAUI app incorporates Syncfusion UI components to showcase the capabilities of the Syncfusion Essential UI Kit for MAUI.
-
Privacy Features: The MAUI app includes privacy features such as the ability to lock the screen with a password to hide chat messages and clear the local chat history.