12

GitHub - Sound932/Chit-Chat: Social chatting application with MySQL database fea...

 3 years ago
source link: https://github.com/Sound932/Chit-Chat
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Chit-Chat

Social chatting application with MySQL database features for windows.

Login Register

Public Chat

Private Chat

Light Theme

Image Sending

Contains usages of:

  • Makes use of Task based asynchronity through System.Threading
  • Socket Programming through Microsoft.AspNetCore.SignalR.Client
  • JSON serialization through Newtonsoft.Json
  • Web API project to handle HTTP & database requests. https://github.com/Sound932/WebAPI-ChatHub.git

Core functionality:

  • Login / Register options
  • List of connected users, automatically updating when one joins/leaves
  • Returning to home view automatically when server is down
  • Private chatting
  • Colored Emojis
  • Profile Pictures
  • Image Sending
  • Light and Dark themes
  • Character Limit
  • Logging out manually.

Framework:

  • Made in WPF
    • MVVM Design Pattern

Third-Party Libraries:

  • SignalR
  • Newtonsoft JSON
  • MaterialDesignThemes

How were Colored Emojis achieved in WPF

WPF does not support unicode colored emojis. It only supports them in black and white. Question is, how do you go around this? and the answer would be Images.

By using a RichTextBox, you can insert images & rich content which internally uses FlowDocuments and Paragraphs. You can then take the FlowDocument, write it into a MemoryStream formatted as RTF, read the bytes out and send it to an API which then sends it to every socket that needs the data. Users who get the RTF data can now procced to use MemoryStream to Load back the data into a FlowDocument, which can then be inserted into a few controls:

  • FlowDocumentPageViewer
  • FlowDocumentScrollViewer
  • FlowDocumentReader

For a more detailed overview, refer to these links:

Application State

This application is not finished, and there are a lot of things planned.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK