Our SE 4485 Project, the Disaster Recovery Mapping App, can help IT analysts and Data Recovery specialists examine interconnected systems and assets within organizations, especially airlines. It allows users to visualize data from a Configuration Management Database (CMDB) through graphical representations. The application lets users conduct failure analysis by letting them mark nodes as failed, which dynamically updates related nodes to assess the impact of failures. It scales to large datasets and functions offline for reliability and independence in disaster scenarios.
- Download the MSI installer from the latest release
- Clone the repository
- Install Node.js (>= 23.10.0 validated)
- Install packages:
npm install - Run locally
npm run dev- This may take a while the first time. Later runs should be faster
npm run dev: starts the app in development mode (w/ hot reload)npm run build: compiles vue & typescript into a build with electronnpm run package: builds the app and creates a MSI installer (done by CI when a commit to main is tagged with a new version)
npm run format: runs prettier to format files as needednpm run format:ci: likenpm run format, but fails if changes are needed instead of writing them (used in CI)npm run lint: runs eslint to find code problems (fixing them if possible)npm run lint:ci: likenpm run lint, but will not fix fixable problems
npm run test:unit: runs unit testsnpm run coverage: runs unit tests with coveragenpm run coverage:ui: runs unit tests with coverage & opens the coverage UI tool
npm run test:package: builds the app binaries required for testing. do this before running e2e tests!npm run test:e2e:driver: runs the chromedriver server needed for e2e tests. must be running to run e2e tests!npm run test:e2e: runs e2e / requirements testsnpm run test:e2e:bench: runs benchmark / NFR tests
flowchart TD
O(("Start")) ==> S["Select a CMDB"]
Q(("End"))
S =="Click: 'Exit'"==> Q
S =="Upload: .xlsx CMDB file"==> R["CMDB Overview / Stats"]
R =="Click: 'Diagrams'"==>B["Load or create diagram"]
B -."Click: 'Back'".-> R
R -."Click: 'Back'".-> S
L -."Click: 'Back'".-> B
B =="Click: 'Load Diagram'"==> L["Diagram list"]
L =="Click: 'Edit' on a diagram"==> E
E -."Click: 'Back'".-> B
L =="Click: 'View' on a diagram"==> V
B =="Click: 'Create New Diagram'"===> C["Select diagram type"]
C -."Click: 'Back'".-> B
C =="Click: 'Schema Graph'"==> E["Edit diagram"]
C =="Click: 'Data Graph'"==> E["Edit diagram"]
E =="Click: 'Save'"==> V["View diagram"]
V -."Click: 'Back'".-> B
flowchart TD
F["Frontend"]
B["Backend"]
E["Excel Database"]
N["Neo4j Database"]
B --CMDB Assets--> N
N --CMDB Structure---> B
B --CMDB Structure---> F
N --CMDB Contents---> B
B --CMDB Contents---> F
E --CMDB Assets--> B
F --Rendered diagram--> B
F --Diagram config--> B
B --Diagram config--> N
B --Rendered diagram--> E
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.
- VS Code + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).
TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue types.
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:
- Disable the built-in TypeScript Extension
- Run
Extensions: Show Built-in Extensionsfrom VSCode's command palette - Find
TypeScript and JavaScript Language Features, right click and selectDisable (Workspace)
- Run
- Reload the VSCode window by running
Developer: Reload Windowfrom the command palette.

