Giter Site home page Giter Site logo

colineberhardt / electron-fdc3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from finos/fdc3-sail

1.0 2.0 0.0 1.29 MB

Open implementation of the FDC3 standard using Electron and an integrated App Directory.

License: Apache License 2.0

JavaScript 9.29% TypeScript 89.23% HTML 1.07% CSS 0.42%

electron-fdc3's Introduction

Electron FDC3 Desktop Agent & App Directory

This project provides a fully open source implementation of the FDC3 interoperability standard. Including:

  • A fully featured and secure electron desktop agent featuring:
    • intent resolution
    • channel linking
    • directory search
  • A local file-based app directory implementation

Electron Implementation

The Electron implementation is built from the Vite Electron Builder Boilerplate (also see TEMPLATE.md).

The UI for the desktop agent is built using React MUI.

All remotely hosted content is run in BrowserView following electron security best practices.

Libraries

The following libraries are used:

Structure

  • directory/ - the app directory implementation, built with fastify
  • packages/main - the main Electron application, has access to Node
  • packages/preload - preload scripts for web renderers. Bridges the frontend ui to the main process through events and apis
    • packages/preload/channelPicker - preload for the channel picker UI
    • packages/preload/homeView - preload for the default home view UI. Note: this exposes an additional API on top of the standard FDC3 one - which can only be accessed by native "system" views.
    • packages/preload/intentResolver - preload for the intent resolver UI
    • packages/preload/searchResults - preload for the searchResults UI
    • packages/preload/view - preload for all content views. This is where the FDC3 API is implemented.
    • packages/preload/index.ts - preload for the main window - i.e. the frame around all view content.
  • packages/renderer - the parts of the desktop agent UI built with React, isolated from main app, and shown in a window on the desktop
    • packages/renderer/channelPicker - UI for the channel picker
    • packages/renderer/homeView - UI for the default home view
    • packages/renderer/intentResolver - UI for the intent resolver window
    • packages/renderer/searchResults - UI for the searchResults window
    • packages/preload/src - UI for the main window - i.e. the frame around all view content. This covers the search bar, channel picker button, and tabs.

App Directory Setup

Modify the local directory entries here:

  • directory/src/data

The local appD will run at localhost:8080 by default.

By default, the Desktop Agent points to the local directory in development and to the https://appd.kolbito.com directory in production. You can change the local settings in scripts/watch.js by modifying the entries for VITE_DEV_DIRECTORY_URL and change the production setting by modifying the value for productionDirectory in packages/main/src/utils.ts.

Commands

  1. npm start / npm run watch - Start the Electron app in dev mode.
  2. npm run start:directory - Start the local app directory.
  3. npm run compile - Build the app for local debugging only.
  4. npm run lint - Lint the code.
  5. npm run typecheck - Run a TypeScript check.
  6. npm run test - Run tests for all parts of the application, including end-to-end tests.

electron-fdc3's People

Contributors

nkolba avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.