A cross-platform desktop application for accessing the Aeris ERP Point of Sale system, built with Electron.
- Multi-User Session Management: PIN-protected user sessions with auto-lock timeout
- Seamless Integration: Loads your Aeris ERP web application in a native desktop environment
- Configurable Server: Connect to any Aeris ERP server (default: aeris.local, IP configurable)
- Dual Operating Modes: Single-user or multi-user session management
- Secure: AES-256-GCM encryption for PIN storage, context isolation, sandboxed renderer
- Offline Handling: Graceful error handling when the server is unavailable
- Auto-Start Option: Configure the app to start automatically with your computer
- Cross-Platform: Works on Windows and macOS (Intel/ARM64)
- Full-Screen Ready: Optimized for point-of-sale operations
- Native Menus: Keyboard shortcuts and native menu integration
- Print Support: Full printing functionality with network printer support
- Clean Interface: Simple, focused design for ERP operations
- Node.js (version 16 or higher)
- npm or yarn
-
Clone or download this repository
-
Install dependencies:
npm install
-
Add your application icons:
- Place
icon.png(512x512px) insrc/assets/icons/ - Place
icon.ico(Windows format) insrc/assets/icons/ - Place
icon.icns(macOS format) insrc/assets/icons/
- Place
npm run devRun automated tests:
npm test # Run all tests
npm run test:coverage # Run with coverage report
npm run test:watch # Run in watch modeTest Coverage:
- 92.4% overall code coverage
- 121 passing tests (100% pass rate)
- See Automated Testing Guide for details
Build for current platform:
npm run buildBuild for Windows:
npm run build:winBuild for macOS:
npm run build:macBuilt applications will be available in the dist/ directory.
- Launch the application
- If your Aeris ERP server is not running on aeris.local, open Settings (Cmd/Ctrl + ,)
- Configure your server URL
- Test the connection
- Optionally enable session management and auto-start
Access settings via:
- Menu: AERIS → Settings
- Keyboard shortcut: Cmd/Ctrl + ,
Available settings:
- Server URL: The URL where your Aeris ERP server is running (requires restart)
- Enable Session Management: Toggle multi-user session mode (immediate effect)
- Session Timeout: Auto-lock timeout in minutes (5-120, immediate effect)
- Auto-Start: Start Aeris automatically when your computer starts (immediate effect)
- Cmd/Ctrl + ,: Open Settings
- Cmd/Ctrl + R: Reload Application
- Cmd/Ctrl + P: Print Current Page
- F11: Toggle Full Screen
- F12: Open Developer Tools (development mode)
- Cmd/Ctrl + Q: Quit Application
- Ensure your Aeris ERP server is running
- Check the server URL in Settings
- Use the "Test Connection" button in Settings
- Check your firewall settings
- Check that Node.js is installed
- Verify all dependencies are installed:
npm install - Try running in development mode:
npm run dev
- Development Guide - Project overview, architecture, and development commands
- Testing Guide - Comprehensive manual test procedures
- Automated Testing - Automated test suite guide (121 tests, 92.4% coverage)
- TDD Review - Test-driven development analysis and recommendations
- CI/CD Pipeline - Continuous integration and deployment documentation
- Main Process:
src/main.js- Manages application lifecycle, windows, and IPC handlers - Session Manager:
src/session-manager.js- Multi-user session management with encryption - Renderer Process: Loads the Aeris ERP web application in isolated context
- Preload Script:
src/preload.js- Secure IPC communication bridge - Settings Storage: Persistent configuration using electron-store
- Context isolation enabled
- Node integration disabled in renderer
- AES-256-GCM encryption for PIN storage
- PIN attempt limiting (3 attempts, 5-minute lockout)
- External links open in default browser
- Navigation restricted to configured server domain
- Secure URL validation for all external links
Place these files in src/assets/icons/:
- icon.png - 512x512px PNG format (main icon)
- icon.ico - Windows ICO format with multiple sizes (16x16, 32x32, 48x48, 256x256)
- icon.icns - macOS ICNS format
MIT License - see LICENSE file for details