This is a TAFE assignment for the Diploma in Software Development, at the South Metropolitan TAFE, Rockingham, Western Australia.
The project is to implement a Client/Server application that provides a Login facility that utilizes standard hashing techniques.
To show a possible use-case, I have implemented an Echo Chat facility, where the server essentially echoes back what is sent to it. To use this facility, the user must first login.
This project consists of five sub-projects and uses the following 3rd party libraries:
Projects:
Third Party Libraries (as Nuget Packages):
- CsvHelper v27.1.1
- Microsoft.AspNetCore.Cryptography.KeyDerivation v5.0.11
This is a non-executable jar, containing a collection of classes that are in 'common' use across multiple projects.
This application allows the user to perform the following functions:
- Create a new account
- Login to an existing account
- Chat to the echo server (Socket Server)
This library project was copied from another of my projects: Prog3AT2-Two.
This is a Class Library that contains the BBST: AvlTree<T>
and the
ObservableAvlTree<T>
.
This library project was copied from another of my projects: Prog3AT2-Two.
This is a WPF Class Library that contains a helper console window:
LogConsole
and a supporting class: TextBlockOutputter
.
Together they provide a means to redirect the Console.Write{Line}()
output to a window for easier debugging.
A lot of the initial code for this project was ported from another of my projects: Java3AT2-Four.
The functionality for the Server
is a merging of that in the original two servers:
RMIServer
and SocketServer
. To achieve this, it was necessary to develop a
communications protocol, to handle the sequencing of commands and data.
This server application provides the following functionality:
- Create new accounts
- Validate login requests
- Store user account details in a CSV file
- Username
- Password: hashed
- Echo chat functionality.