The Market-Eye desktop app tabulates technical indicators for the stocks from NYSE/NASDAQ markets through a light interface.
The project is built with Market-Eye API, Electron React Boilerplate, MUI, and Zustand.
MarketEye API provides the most recent stock market analytics by calculating individual stock indicators (EMAs, MFI, etc.) as well as market-as-a-whole parameters (VIX, CVI, etc.) using the end-of-day (EOD) historical data. Market-Eye API stores the last three months of data and computes new analytics every working (trading) day.
Note: Market-Eye API is accessible only through a private key access (should be initiated in the .env locally).
Clone the repo and install dependencies:
git clone https://github.com/andreyxdd/marketeye-desktop-app.git
cd marketeye-desktop-app
npm installHaving issues installing? The ERB debugging guide might help
Start the app in the dev environment:
npm startTo package apps for the local platform:
npm run packageFlavor-specific Windows installers:
npm run package:win:us
npm run package:win:to
npm run package:win:micro:us
npm run package:win:micro:to- Bump the version in
package.json. - Commit the version bump.
- Create and push a tag:
git tag v1.4.6 && git push origin v1.4.6 - GitHub Actions builds four Windows installers on tag push (
v*). - CI uploads each
.exe,.blockmap, and a flavor-specificlatest.ymlto the GitHub Release. - CI deploys four update feeds to GitHub Pages at
updates/{releaseAppName}/latest.yml. - Packaged apps check their baked-in feed on startup via
electron-updater(generic provider).
Release artifact names follow artifactName in package.json:
MarketEye US-{version}-US-win.exeMarketEye TSX-{version}-TO-win.exeMicroFTM-{version}-US-win.exeMicroFTM TSX-{version}-TO-win.exe
Per-flavor update feeds (stable gh-pages URLs):
| Flavor | Feed |
|---|---|
| MarketEye US | https://andreyxdd.github.io/marketeye-client/updates/marketeye-us/ |
| MarketEye TSX | https://andreyxdd.github.io/marketeye-client/updates/marketeye-tsx/ |
| MicroFTM | https://andreyxdd.github.io/marketeye-client/updates/microftm-us/ |
| MicroFTM TSX | https://andreyxdd.github.io/marketeye-client/updates/microftm-tsx/ |
One-time setup: enable GitHub Pages for this repo (Settings → Pages → deploy from gh-pages branch).
Windows note: installers are unsigned today; SmartScreen may warn until code signing is added.
Flavor publish scripts (full pipeline with prepare:packaging-assets):
npm run package:publish:win:us
npm run package:publish:win:to
npm run package:publish:win:micro:us
npm run package:publish:win:micro:to- Main-process IPC handlers throw serializable API errors instead of returning
null/[]. - React Query hooks propagate failures; the data table and US market panel show an MUI
Alertwith Retry. - Background prefetch logs failures and does not seed cache on error; active price band prefetches first, other bands are lazy with concurrency 1.
Each flavor must keep a unique Windows identity so all four installers can live on one machine:
| Flavor | appId |
Executable |
|---|---|---|
| MarketEye US | com.marketeye.standard.us |
MarketEye US.exe |
| MarketEye TSX | com.marketeye.standard.to |
MarketEye TSX.exe |
| MicroFTM | com.marketeye.micro.us |
MicroFTM.exe |
| MicroFTM TSX | com.marketeye.micro.to |
MicroFTM TSX.exe |
Before release, confirm packaging patches identity correctly:
npm run generate:icons
MARKETEYE_MARKET=US MARKETEYE_PRODUCT_NAME="MarketEye US" npm run prepare:packaging-assets
node -e "console.log(require('./package.json').build.appId)"
git checkout -- package.json release/app/package.json assets/icon.png assets/icon.ico
MARKETEYE_MARKET=TO MARKETEYE_PRODUCT_NAME="MarketEye TSX" npm run prepare:packaging-assets
node -e "console.log(require('./package.json').build.appId)"
git checkout -- package.json release/app/package.json assets/icon.png assets/icon.icoExpect com.marketeye.standard.us then com.marketeye.standard.to. After installing two or more flavors, verify separate entries in Apps & features and distinct Start Menu shortcuts / .exe names.