/apps_interaction

This is the project that shows the interaction between the applications (Web and window application)

Primary LanguageC#MIT LicenseMIT

Application Communication Dashboard

Introduction

Application Communication Dashboard is an application where various windows application can get connected, and pass messages back and forth. The Dashboard (web-application) is able to display all the connected windows applications and can send data to them, similarly windows applications can send data to dashboard. Both dashboard and window applications get connected to Nodejs server

Technical Stack

  • Server Stack: NodeJS, Typescript, Websocket
  • Web Application Stack: ReactJS, Typescript, Antd (UI Framework)
  • Windows Technology App: C#, XAML
  • IDE(s): Visual Studio 2017, Visual Studio Code
  • Browser: Google Chrome

How To Build & Run Application

  1. Pre-requisite: Visual Studio Code, Visual Studio 2017, NodeJS, .NET framework, GIT, Google Chrome browser are already installed on the target machine
  2. Clone repository: https://github.com/amittkSharma/apps_interaction.git
  3. Package Installation: Open the source code in Visual Studio Code, and open the terminal window, navigate to the source folder. And execute command npm install . Due to monorepo concept packages for both dashboard and server will be installed in one go. If there is a problem please check the troubleshooting section below.
  4. Server Startup: Open another terminal window, navigate to the app-server and execute the command in the same sequence to build and start the nodejs server:{' '} npm run build and npm run start
  5. After the execution of commands in step 4, server will start up at port 8081
  6. Fire-up Dashboard: Open another terminal window, navigate to the app-dashboard and execute the command to launch the dashboard(web application) npm run start
  7. After the execution of commands in step 6, the dashboard application will be launched in the chrome browser at http://localhost:3000/
  8. Launch Window Applications: In order to launch the window applications, there is no need to build any solution. There is an executable present at: app-client/app-client/bin/debug/app-client.exe. Double click on app-client.exe a window application will launch. Every time executable is is double clicked a new instance of the window application will start having a unique process id.
  9. CONGRATULATIONS :) all the components of the system are up and running.

Application Walk Through

  1. Once the dashboard application is launched in the browser, README is first landing page. In order to navigate to the dashboard click the login icon present in top right hand corner. At this moment dashboard will be showing an alert message No applications are connected.
  2. In order to launch windows applications follow the step 8{' '} Launch Window Applications. Once the window application is launched, click the{' '} Connect button. This will connect the windows application to the server. Once this is done the dashboard will start displaying the connected window applications. N-number of window applications can be connected.
  3. The is a Send Message button in both dashboard and windows application to pass the message between the dashboard and specific window application. The input field from the dashboard will appear in the output field of the window application, same will happen when message is send in other direction

Assumptions

  1. This is a system where only 1 dashboard application can get connected to server, whereas N windows applications can get connected to the server
  2. Dashboard gets automatically connected to the running server, where as windows application need to be connected manually
  3. Window applications can not able to send the messages to each other, communication between dashboard and specific window application is possible

Troubleshooting Guide

  • If the Package Installation step does not work, then please navigate to the specific folders app-server, app-dashboard and execute {''} npm install command inside those folders

Missing Features

  1. Closing of windows applications is not communicated to server, hence the dashboard will show the application