# Project name SEBN Taskbar Client ## Description Desktop electron application for production windows PCs, that performs the task of a taskbar for quickly launching production programs, websites, displaying notifications and sending issues to a helpdesk. ## Department PIT ## Maintainer Mykyta Nehrych ## Website http://terdvp0001.sebn.com/sebn-taskbar-manager/ ## Type Internal Software ## Icon faTableCellsLarge ## Major technologies - [React.js 18](https://reactjs.org/) - [Electron 22](https://www.electronjs.org/) - [Ant Design 5](https://ant.design/) - [Webpack 5](https://webpack.js.org/) - ESLint, and Prettier are used to improve the developer experience ## Getting Started 1. Using YARN, run the following command to install dependencies. Package.json use _resolutions_ field. ```sh yarn install --no-cache ``` 2. Run the following command to build and start the development version of your app with live reloading. ```sh yarn dev ``` ## Packaging Install [Autohotkey v2](https://www.autohotkey.com/) with compiler to compile /bin scripts. _AHK replaced ffi-napi due to increased perfomance in windows manipulating and keyboard hook usage._ Run `yarn package` to build and package app in **x64**. Run `yarn package:x86` to build and package app in **x86 (ia32)**. Run `yarn package:all` to build and package app in **x64-x86** arch(final size will doubled!). ## .env file (.env.development and .env.production) ```INI AUTOUPDATE_PRIMARY_URL=http://localhost:8000/media/updates/ // location of latest.yml and nsis setup AUTOUPDATE_SECONDARY_URL=http://localhost:8000/media/updates2/ // reserve update server AUTOUPDATE_PRIMARY_URL_X86= AUTOUPDATE_SECONDARY_URL_X86= AUTO_UPDATE_TIMEOUT_IN_MIN=15 AUTO_UPDATE_TIMEOUT_ADD_RANDOM_IN_MIN= // if set, add random delay in range to fetch BACKEND_URL=http://localhost:8000/api/ BACKEND_API_KEY=aOL43Ixr.WTb6QM3vsEtOiW67bhVc1hqM6468435_Example CRASH_REPORTER_SUBMIT_URL=https://your-domain.com/url-to-submit // if omit save dump in apps user data directory DATA_ACQUISITION_URL=http://localhost:8000/ DEV_POSITION=true // doesnt register as appbar and show on top of existed win taskbar FETCH_WORKPLACE_TIMEOUT_IN_MIN=10 FETCH_WORKPLACE_ADD_RANDOM_IN_MIN= // if set, add random delay in range to fetch RXDB_PASSWORD=B5E63C0C7A5CE365ACE546D0DE91DBA24DF6D81GASDASDSACA_Example TRANSPARENT_WINBAR=true // set windows taskbar full transparency EMAIL_HOST=1.1.1.1 // send main process error stack trace to admin EMAIL_PORT=487 FROM_EMAIL=taskbar-client@example.com ADMIN_EMAIL=admin@example.com ``` ## Common issues - Issue with __electron >= 21__ with [Memory Cage, Fatal error in V8](https://www.electronjs.org/blog/v8-memory-cage): __Fixed with forks @inigolabs\ffi-napi and @inigolabs\ref-napi__ - Issue with `@inigolabs\ref-napi: Command failed. Exit code: 2 Command: PYTHON=python3 node-gyp-build`. Fixed with placing `@inigolabs/ref-napi` in resolutions, because @inigolabs/ffi-napi add it itself in own node_modules