Skip to content

Latest commit

 

History

History
137 lines (88 loc) · 3.9 KB

File metadata and controls

137 lines (88 loc) · 3.9 KB

Elevate

This repository demonstrates a dashboard that stores and visualizes sports and activity data in Solid Pods. It shows how decentralized data pods, Incremunica, and aggregators can be combined to build a high-performance dashboard app with rich insights and visualizations.

Development

This section covers the environment setup to develop and build both desktop app and web extension.

Global solution structure

The solution is cut in 3 folders/projects: the appcore, the desktop

App-core project

Appcore contains core features like fitness trend, year progressions, athlete settings...

The Appcore main technology stack is:

Desktop project

Holds the container behaviour to provide a cross-platform desktop app under Windows, Linux & MacOS. It contains desktop specific features like connectors synchronization (to fetch athlete activities from external).

The Desktop main technology stack is:

  • Typescript as programming language.
  • Jest as Javascript test runner.
  • Electron as cross-platform desktop container.
  • Electron-builder to build, sign and publish installers per platform. Also handle app updates process (via electron-updater).
  • Rollup.js to load & bundle modules.
  • Vue.js for splash-screen update window.

Environments setup

Install requirements

You will need to install NodeJS (v15+).

git clone https://github.com/SolidLabResearch/elevate.git

or

git clone git@github.com:SolidLabResearch/elevate.git

The new mono-repo including the desktop app is on develop branch. So checkout/track this branch to build the desktop app:

cd ./elevate
git checkout --track origin/develop

Then install npm dependencies:

npm install

Run solution tests (appcore + desktop):

npm test

(Should be executed with success for any pull request submission).

Desktop development environment

All commands displayed in this section will be executed in ./desktop/ folder. So:

cd ./desktop/
  • Run in development:
npm start

This npm task will create a ./desktop/dist output folder and re-compile both appcore and desktop projects on any code changes

To open the desktop app, open another terminal, then run:

npm run launch:dev:app
  • Run unit tests:
npm test
  • Generate production installers and publish them per platforms:

First switch to desktop directory with cd desktop/

  • Build Windows x64 .exe:

    npm run build:publish:windows
  • Build Linux x64 .deb:

    npm run build:publish:linux
  • Build MacOS x64 .dmg :

    npm run build:publish:macos

Output installers will be located in ./desktop/package/ The build targets are defined in ./desktop/package.json (build key section). See https://www.electron.build for more info.

npm run clean