-
Notifications
You must be signed in to change notification settings - Fork 0
Tech Stack
PhobiaCide edited this page Apr 15, 2025
·
1 revision
The EVE Companion App uses a pragmatic, library-rich tech stack to accelerate development. The priority is to ship a feature-complete product quickly, with plans to refactor out external dependencies over time.
| Tool | Purpose |
|---|---|
| Electron Forge | Scaffolding, building, and packaging |
| Webpack | Bundling and hot module replacement |
| Node.js | Backend logic and OAuth token handling |
| Library | Purpose |
|---|---|
| Halfmoon.css | Layouts, utilities, and basic component styling |
| Topcoat.css | Clean flat UI components |
| Augmented-ui.css | Decorative sci-fi borders and inlays |
| Bootstrap.js | Legacy JS behaviors (modals, dropdowns) |
| Popper.js | Tooltip/dropdown positioning support |
| Library | Purpose |
|---|---|
| Zustand | Lightweight global state management |
| Library | Purpose |
|---|---|
| three.js | 3D rendering for starmap, ship models |
| d3.js | Data-driven visuals (sovereignty, routes) |
| Chart.js | Financial and performance graphs |
| svg.js | Dynamic SVG manipulation (fittings, UIs) |
| AOS | Optional scroll-based animations |
| Library | Purpose |
|---|---|
| axios | HTTP requests with token injection |
| tippy.js | Tooltips with advanced styling |
| notyf | Toast-style notifications |
| interact.js | Drag/resize for window frames |
| p-queue | Throttled async request queue (lazy loading) |
| electron-store | Persistent config/settings storage |
| electron-log | Logging for both renderer and main process |
| dexie.js | IndexedDB wrapper for storing large data sets |
| Library | Purpose |
|---|---|
| simple-oauth2 | Secure token handling in Electron main |
| oidc-client-ts | Fallback web-based login/token manager |
| swagger-typescript-api | Auto-generates ESI client from Swagger |
| @svgdotjs/svg.js | Used for dynamic SVG manipulation |
| Tool | Purpose |
|---|---|
| jsdoc | Generates developer documentation |
| vitest | Unit testing framework (optional) |
| mocha | Electron-compatible test runner |
| esbuild | Optional utility bundler |
"scripts": {
"start": "electron-forge start",
"make": "electron-forge make",
"generate-esi": "swagger-typescript-api generate --path https://esi.evetech.net/latest/swagger.json --output ./src/api/esi --name index.ts --axios --modular --union-enums",
"generate-docs": "jsdoc -c jsdoc.json",
"prepare": "npm run generate-esi && npm run generate-docs"
}| Path | Description |
|---|---|
src/js/main/ |
Core app logic (1 class = 1 file) |
src/api/esi/ |
Generated ESI API client |
docs/ |
JSDoc-generated documentation |
style-guide/ |
Visual design references and theming |
img/ |
Logos, concept art, UI inspiration |
✅ TIP: You can regenerate the ESI client and documentation using:
npm run prepare