Features:
(i) Search games: Find related games by searching its name, like Zelda.
(ii) View recently released games: Look at which games have been released the past month.
(iii) View upcoming games: Discover new and exciting games soon to be released and on which platform.
(iv) View popular games by platform: Filter games by the most popular PC, console, and handheld platform.
(v) Up-to-date Steam price: Keep notified with new discounts to get the best possible price.
(vi) 84,000 Games - One of the largest collection of games is at your fingertips.
(vii) 5-star reviews - Pick the best game for you based on actual user reviews.
(viii) Global Chatroom - Talk with fellow gamers about exciting new releases with all your favorite emojis.
(ix) Linked gaming platforms - Link your gaming profiles such as Twitch, Discord and Steam so people know where to find you.

How to use in browser:
(i) Check out the features on the home page.
(ii) View the Menu to discover new games by platform, search games, upcoming games, and recently released games.
(iii) Click Account to login. This is required to access the chatroom.
(iv) Click Chatroom to talk with fellow gamers and view
the profiles of other users.

How to use in browser:
(i) Login to your Google account.
(ii) Click the upload box to select one or many files to uploads, then click Upload.
(iii) Visit the Files menu to access your file actions such as uploading the file to Google Drive, download links, and deleting the file.
(iv) Visit other menu options to view information such as your Google profile, file notifications, and upload statistics.

This application is a scalable Point Of Sale (POS) system that runs exclusively on Windows devices and can be used on a desktop or mobile tablet to take orders from customers. This system includes a WCF service to synchronize all POS devices in the restaurant, store orders on a SQL Server, and provides API functions for retrieving menu and order data.

Features:
(i) An application that scales with the addition of new POS devices.
(ii) The ability to run on a desktop or mobile tablet device to flexibly take orders.
(iii) Application UI scales with any resolution device to provide consistency across devices.
(iv) Uses WCF to access database services and synchronize order information across all POS devices.
(v) Leverages WPF technology to deliver a smooth vector-based UI over traditional WinForms.
(vi) Uses the MVVM design pattern with the Prism framework to deliver well-structured, maintainable, and testable code.

Restrictions:
(i) Not cross-platform with Mac or Linux.

How to run with IIS:
(i) Download the source code containing Client, Service, and Databases directories.
(ii) Open IIS to add an application with the name POSServiceApp and point the physical path to Service/www/POSServiceApp.
(iii) Open the client project in Client/Build/POS/POS.sln and ensure the service reference matches IIS's virtual path to wsdl document before rebuilding the client.
(iv) Open the service project in Service/Build/POSIIS/POSIIS.sln, build the project, then move the .dll and .dll.config assemblies to Service/www/POSServiceApp.
(v) Open SQL Server and import the POS database via the script at Database/POSschema.sql. Ensure the SQL Server has a Windows login named "IIS APPPOOL\YourAppPoolName".
(vi) Ensure the Service/www/POSServiceApp/web.config configuration file contains the correct connection string to access your SQL Server database.
(vii) Run the client application and begin taking orders.

This application simulates a physical conference room with a whiteboard used to illustrate ideas to other people in the room.

Features:
(i) Cross-platform between Windows, Linux, and Mac.
(ii) Many drawing tools with varying colors to convey ideas.
(iii) Ability to change username or color at any time.
(iv) Ability to erase the whiteboard for all clients to generate new ideas.

Restrictions:
(i) Requires the installation of an up-to-date JRE for the application to run on a JVM.

How to use in Windows, Linux or Mac:
(i) Ensure an up-to-date version of JRE is installed on the operating system.
(ii) Run the .jar application.

Example of usage:
(i) Run the application.
(ii) Enter the username you wish to have in the textbox then click the "Confirm" button to change your name that will be displayed in the room.
(iii) Click the "Choose" button to change the color of your drawing on the whiteboard.
(iv) Navigate to either the Create or Join panel and enter the details of the server you wish to create or join, respectively.
(v) Now you are able to see who is in the room in the Visitor List below and use the whiteboard to draw by dragging your mouse on it.

This program uses standard AES-CTR cryptography with an NVIDIA GPU on the user's system to accelerate AES throughput during encryption and decryption. As well, single-core execution can be selected if the system does not have a GPU installed.

Features:
(i) Cross-platform between Windows and Linux.
(ii) It is modular and can work with your existing program as a 3rd party library dependency.
(iii) Ability to choose from various key sizes such as 128, 192 and 256.
(iv) Performance accelerated by parallelizing chunks of 16-byte AES blocks on the GPU.

Restrictions:
(i) Maximum file size is 2gb(Can be removed, if needed, by changing to 64-bit).

How to use in Windows(MSVC):
(i) Go to the program's directory, then change directory to the program's executable and execute the help command "saes.exe -help" to obtain correct formatting information for file encryption/decryption.
(ii) Enter the command-line arguments along with the file(s) you wish to be encrypted/decrypted.
(iii) If you have a NVIDIA GPU device installed on your system it will list which GPU was used followed by the execution time. If no such device can be found, then single-core CPU execution will, instead, be used.

How to use in Linux(GNU):
(i) Copy the saes executable into your root /bin directory, then execute the help command "saes -help" to obtain correct formatting information for file encryption/decryption.
(ii) Enter the command-line arguments along with the file(s) you wish to be encrypted/decrypted.
(iii) If you have a NVIDIA GPU device installed on your system it will list which GPU was used followed by the execution time. If no such device can be found, then single-core CPU execution will, instead, be used.

WinAPI Cryptography

This program demonstrates secure network transmission between unsecure networks by using the RSA key-exchange mechanism with AES symmetric session keys for fast and efficient encryption/decryption.

Features:
(i) Uses RSA 1024-bit encryption as a secure key-exchange mechanism between untrusted networks.
(ii) Uses AES 256-bit session keys for fast message encryption and decryption.
(iii) Uses Winsock 2 and WinAPI's Cryptography library for network communication and encryption.
(iv) Ability to see how the key-exchange process and symmetric encryption in unsigned decimal representation form of the packet as it travels across the network.

Restrictions:
(i) Certificates for public-keys are not available in this version of the program. (See PDF for full example)
(ii) Digital Signatures for messages are not available in this version of the program. (See PDF for full example)

How to use in Windows(MSVC):
(i) Run both the CryptServer and CryptClient programs.
(ii) In the client program, type the address on which the server is being run. If both programs are being run on the same network, type "localhost".
(iii) You are now free to demonstrate secure message communication by typing a string and pressing enter. To check if you received a message, simply press enter with an empty string.