Skip to content

Commit 6679760

Browse files
committed
docs: rewrite README with complete app catalog, architecture, and build instructions
1 parent bd8fa05 commit 6679760

1 file changed

Lines changed: 162 additions & 68 deletions

File tree

README.md

Lines changed: 162 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -13,46 +13,121 @@ eApps is a pure C + LVGL monorepo delivering productivity tools, media apps, gam
1313

1414
## ⚡ Quick Start
1515

16-
| | |
16+
```bash
1717
git clone https://github.com/embeddedos-org/eApps.git
1818
cd eApps
19-
| **UI Framework** | LVGL v9.x |
19+
2020
# Desktop build (SDL2 backend)
2121
cmake -B build -DEAPPS_PORT=sdl2
2222
cmake --build build
2323
./build/eapps_suite
24-
| **Binary Size** | 500KB–5MB per standalone app |
24+
2525
# Build with tests
2626
cmake -B build -DEAPPS_PORT=sdl2 -DEAPPS_BUILD_TESTS=ON
2727
cmake --build build
28-
ctest --test-dir build
29-
## Quick Start
28+
ctest --test-dir build --output-on-failure
29+
3030
# Web build (Emscripten → WASM)
3131
cmake -B build-web -DCMAKE_TOOLCHAIN_FILE=cmake/emscripten.cmake
3232
cmake --build build-web
3333

3434
# EoS build (embedded target)
3535
cmake -B build-eos -DCMAKE_TOOLCHAIN_FILE=cmake/eos.cmake
3636
cmake --build build-eos
37-
# Desktop build (Linux/macOS)
38-
cmake -B build -DBUILD_TESTING=ON
37+
38+
# Windows (MSVC)
39+
cmake -B build
40+
cmake --build build --config Release
41+
42+
# Build standalone per-app executables
43+
cmake -B build -DEAPPS_BUILD_STANDALONE=ON
44+
cmake --build build
45+
./build/apps/ecal/ecal_standalone
46+
```
47+
3948
---
40-
./build/apps/suite/eapps_suite
49+
4150
## 📱 Apps (38 total)
4251

52+
### Productivity (13)
53+
54+
| App | Description |
55+
|-----|-------------|
56+
| **eNote** | Text editor with syntax highlighting, tabs, search/replace |
57+
| **eCalc** | Scientific calculator with expression parser and unit conversion |
58+
| **eCal** | Calendar and scheduler with events and reminders |
59+
| **eFiles** | File manager with tree view, copy/move/delete |
60+
| **eConverter** | Unit converter (length, weight, temp, voltage, hex/dec/bin) |
61+
| **eBuffer** | Clipboard manager with history and pinned items |
62+
| **eClock** | World clock, alarm, stopwatch, timer |
63+
| **eCleaner** | Storage analyzer and temp file cleaner |
64+
| **eTools** | System info, process list, memory viewer, hex editor |
65+
| **ePaint** | Drawing editor with brushes, layers, shapes |
66+
| **ePDF** | PDF viewer with page nav, zoom, text search |
67+
| **eZip** | Archive manager (ZIP, TAR, GZ, BZ2) |
68+
| **eViewer** | Image viewer with thumbnails and slideshow |
69+
70+
### Media (5)
71+
72+
| App | Description |
73+
|-----|-------------|
74+
| **eMusic** | Audio player with playlist and equalizer |
75+
| **eVideo** | Video player with HW decoding and subtitles |
76+
| **eGallery** | Image gallery with slideshow and EXIF |
77+
| **ePlay** | Unified media center hub |
78+
| **eTimer** | Countdown timer and stopwatch |
79+
80+
### Games (11)
81+
82+
| App | Description |
83+
|-----|-------------|
84+
| **Snake** | Classic snake with speed progression |
85+
| **Tetris** | Falling blocks with rotation and line clear |
86+
| **Minesweeper** | Mine-clearing with 3 difficulty grids |
87+
| **Dice** | Dice roller with custom sides and stats |
88+
| **eChess** | Chess with AI opponent (minimax) |
89+
| **eRunner** | Endless runner with obstacles and power-ups |
90+
| **eCrush** | Match-3 puzzle with combos and levels |
91+
| **eBirds** | Physics launcher with destructible environments |
92+
| **eBlocks** | Block-breaker with paddle and power-ups |
93+
| **eSlice** | Swipe-to-slice with fruits and combos |
94+
| **eVirusTower** | Tower defense with virus waves and upgrades |
95+
96+
### Connectivity (7)
97+
98+
| App | Description |
99+
|-----|-------------|
100+
| **eChat** | Messaging with EIPC transport and encryption |
101+
| **eSSH** | SSH terminal with tabs and key auth |
102+
| **eVNC** | VNC remote desktop viewer |
103+
| **eWeb** | Web browser with HTML rendering |
104+
| **eSerial** | Serial monitor with hex view and logging |
105+
| **eVPN** | VPN client (WireGuard/OpenVPN) |
106+
| **eTunnel** | SSH tunneling with SOCKS proxy |
107+
108+
### Security & System (2)
109+
110+
| App | Description |
111+
|-----|-------------|
112+
| **eGuard** | Firewall with rule editor and connection monitor |
113+
| **Suite** | App launcher hub with search and categories |
43114

44-
# Run tests
45-
cd build && ctest --output-on-failure
115+
---
46116

47-
# Windows (MSVC)
48-
cmake -B build
49-
cmake --build build --config Release
117+
## 🎯 Platform Support
118+
119+
| Platform | Port | Backend | Output |
120+
|----------|------|---------|--------|
121+
| Windows | `sdl2` | SDL2 + OpenGL | `.exe` |
122+
| Linux | `sdl2` | SDL2 + X11/Wayland | ELF binary |
123+
| macOS | `sdl2` | SDL2 + Metal | `.app` |
124+
| EoS (embedded) | `eos` | Framebuffer / display HAL | Firmware image |
125+
| Web (any browser) | `web` | Emscripten → WASM | HTML + WASM |
50126

51-
# EoS cross-compile
52127
---
53-
cmake --build build-eos
128+
54129
## 🏗 Architecture
55-
cmake -B build -DEAPPS_BUILD_STANDALONE=ON
130+
56131
```
57132
eApps/
58133
├── core/ # Shared C libraries
@@ -63,7 +138,7 @@ eApps/
63138
│ └── platform/ # Platform abstraction (Linux/Win32/EoS/Web)
64139
├── apps/ # 38 application modules
65140
│ ├── suite/ # Suite launcher (all-in-one)
66-
│ ├── ecalc/ # Calculator
141+
│ ├── ecal/ # Calculator
67142
│ ├── enote/ # Text editor
68143
│ ├── snake/ # Snake game
69144
│ └── ... # + 34 more
@@ -80,18 +155,6 @@ eApps/
80155
├── tests/ # Unit tests (C)
81156
└── docs/ # Documentation
82157
```
83-
./build/apps/ecal/ecal_standalone
84-
---
85-
| Flag | Description |
86-
## 🎯 Platform Support
87-
| `EAPPS_BUILD_PRODUCTIVITY` | ecal, enote, econverter, ebuffer, efiles, ecleaner, eclock, etools, etimer, epdf, ezip, eviewer, esession |
88-
| Platform | Port | Backend | Output |
89-
|----------|------|---------|--------|
90-
| Windows | `sdl2` | SDL2 + OpenGL | `.exe` |
91-
| Linux | `sdl2` | SDL2 + X11/Wayland | ELF binary |
92-
| macOS | `sdl2` | SDL2 + Metal | `.app` |
93-
| EoS (embedded) | `eos` | Framebuffer / display HAL | Firmware image |
94-
| Web (any browser) | `web` | Emscripten → WASM | HTML + WASM |
95158

96159
---
97160

@@ -107,13 +170,26 @@ eApps/
107170

108171
---
109172

110-
## 🧪 Tests
173+
## 🔨 Build Flags
111174

175+
| Flag | Description |
176+
|------|-------------|
177+
| `EAPPS_PORT` | Target port: `sdl2`, `eos`, `web` |
178+
| `EAPPS_BUILD_TESTS` | Enable unit tests |
179+
| `EAPPS_BUILD_STANDALONE` | Per-app standalone executables (OFF by default) |
180+
| `EAPPS_BUILD_PRODUCTIVITY` | ecal, enote, econverter, ebuffer, efiles, ecleaner, eclock, etools, etimer, epdf, ezip, eviewer, esession |
112181
| `EAPPS_BUILD_MEDIA` | emusic, evideo, egallery, eplay, epaint |
182+
| `EAPPS_BUILD_GAMES` | snake, tetris, minesweeper, dice, echess, erunner, ecrush, ebirds, eblocks, eslice, evirustower |
183+
184+
---
185+
186+
## 🧪 Tests
187+
188+
```bash
113189
cmake -B build -DEAPPS_PORT=sdl2 -DEAPPS_BUILD_TESTS=ON
114190
cmake --build build
115191
ctest --test-dir build --output-on-failure
116-
| `EAPPS_BUILD_STANDALONE` | Per-app standalone executables (OFF by default) |
192+
```
117193

118194
| Test | Covers |
119195
|------|--------|
@@ -124,9 +200,9 @@ ctest --test-dir build --output-on-failure
124200
| `test_registry` | App registration, lookup, enumeration |
125201
| `test_prefs` | Preferences save/load/delete |
126202
| `test_game_engine` | Game loop, sprite, collision detection |
127-
# Games only
203+
128204
---
129-
```
205+
130206
## 🚀 CI/CD
131207

132208
| Workflow | Schedule | Coverage |
@@ -147,6 +223,7 @@ ctest --test-dir build --output-on-failure
147223
| [Architecture](docs/architecture.md) | Module structure, build system, platform layers |
148224
| [Adding Apps](docs/adding-apps.md) | Step-by-step guide to add a new app |
149225
| [Porting Guide](docs/porting-guide.md) | How to port to a new platform |
226+
| [Platform Guide](docs/platform-guide.md) | Platform-specific build and deployment notes |
150227

151228
---
152229

@@ -155,48 +232,65 @@ ctest --test-dir build --output-on-failure
155232
| Project | Repository | Purpose |
156233
|---|---|---|
157234
| **eos** | [embeddedos-org/eos](https://github.com/embeddedos-org/eos) | Embedded OS — provides HAL for display/input |
158-
| **eosim** | [embeddedos-org/eosim](https://github.com/embeddedos-org/eosim) | Simulatortest apps in simulated environments |
235+
| **eboot** | [embeddedos-org/eboot](https://github.com/embeddedos-org/eboot) | Bootloadersecure boot, A/B slots |
159236
| **ebuild** | [embeddedos-org/ebuild](https://github.com/embeddedos-org/ebuild) | Build system — SDK generator, packaging |
237+
| **eipc** | [embeddedos-org/eipc](https://github.com/embeddedos-org/eipc) | IPC framework — Go + C SDK, HMAC auth |
238+
| **eai** | [embeddedos-org/eai](https://github.com/embeddedos-org/eai) | AI layer — LLM inference, agent loop |
239+
| **eni** | [embeddedos-org/eni](https://github.com/embeddedos-org/eni) | Neural interface — BCI, Neuralink adapter |
240+
| **eosim** | [embeddedos-org/eosim](https://github.com/embeddedos-org/eosim) | Multi-architecture simulator |
160241
| **EoStudio** | [embeddedos-org/EoStudio](https://github.com/embeddedos-org/EoStudio) | Design suite with LLM integration |
161242

243+
## Standards Compliance
162244

163-
## Project Structure
245+
This project is part of the EoS ecosystem and aligns with international standards including ISO/IEC/IEEE 15288:2023, ISO/IEC 12207, ISO/IEC/IEEE 42010, ISO/IEC 25000, ISO/IEC 25010, ISO/IEC 27001, ISO/IEC 15408, IEC 61508, ISO 26262, DO-178C, FIPS 140-3, POSIX (IEEE 1003), WCAG 2.1, and more. See the [EoS Compliance Documentation](https://github.com/embeddedos-org/.github/tree/master/docs/compliance) for full details including NTIA SBOM, SPDX, CycloneDX, and OpenChain compliance.
164246

165-
```
166247
## 📜 License
167-
├── CMakeLists.txt # Root build configuration
168-
├── cmake/ # Toolchain files (eos, linux, windows, emscripten)
169-
├── extern/ # LVGL submodule + lv_conf.h
170-
├── core/
171-
│ ├── common/ # Types, registry, math/string/date utils, expr parser
172-
│ ├── ui/ # Theme, widgets, canvas, game engine
173-
│ ├── storage/ # File-backed preferences
174-
│ ├── network/ # HTTP abstraction (posix/win32/web backends)
175-
│ └── platform/ # Clipboard, sysinfo, tick (per-platform impls)
176-
├── port/
177-
│ ├── sdl2/ # Desktop display/input drivers + main
178-
│ ├── eos/ # EoS HAL drivers + main
179-
│ └── web/ # Emscripten drivers + main
180-
├── apps/
181-
│ ├── ecal/ # Calculator (expr parser + btnmatrix)
182-
│ ├── snake/ # Snake game (game engine)
183-
│ ├── echess/ # Chess (full move validation)
184-
│ ├── suite/ # Suite launcher (app grid + categories)
185-
│ └── ... # 35 more apps
186-
├── tests/ # CTest unit tests
187-
└── docs/ # Architecture, porting guide, adding apps
188-
```
189248

190-
## Platform Support
249+
MIT License — see [LICENSE](LICENSE) for details.
191250

192-
| Platform | Display | Input | Status |
193-
|----------|---------|-------|--------|
194-
| Linux (SDL2) | SDL2 window | Mouse + keyboard | ✅ Ready |
195-
| Windows (SDL2) | SDL2 window | Mouse + keyboard | ✅ Ready |
196-
| macOS (SDL2) | SDL2 window | Mouse + keyboard | ✅ Ready |
197-
| EoS | HAL framebuffer | HAL touch | 🔧 Port stubs |
198-
| Web | HTML5 canvas | Browser events | 🔧 Port stubs |
251+
---
252+
253+
## 🚀 CI/CD
254+
255+
| Workflow | Schedule | Coverage |
256+
|----------|----------|----------|
257+
| **CI** | Every push/PR | Build matrix (Linux × Windows × macOS) + tests |
258+
| **Nightly** | 2:00 AM UTC daily | Full build + test + regression report |
259+
| **Weekly** | Monday 6:00 AM UTC | Comprehensive build + dependency audit |
260+
| **EoSim Sanity** | 4:00 AM UTC daily | EoSim install + simulation validation |
261+
| **Simulation Test** | 3:00 AM UTC daily | QEMU/EoSim platform simulation |
262+
| **Release** | Tag `v*.*.*` | Build → test → package → GitHub Release |
199263

200-
## License
264+
---
265+
266+
## 📚 Documentation
267+
268+
| Document | Description |
269+
|----------|-------------|
270+
| [Architecture](docs/architecture.md) | Module structure, build system, platform layers |
271+
| [Adding Apps](docs/adding-apps.md) | Step-by-step guide to add a new app |
272+
| [Porting Guide](docs/porting-guide.md) | How to port to a new platform |
273+
| [Platform Guide](docs/platform-guide.md) | Platform-specific build and deployment notes |
274+
275+
---
276+
277+
## Related Projects
278+
279+
| Project | Repository | Purpose |
280+
|---|---|---|
281+
| **eos** | [embeddedos-org/eos](https://github.com/embeddedos-org/eos) | Embedded OS — provides HAL for display/input |
282+
| **eboot** | [embeddedos-org/eboot](https://github.com/embeddedos-org/eboot) | Bootloader — secure boot, A/B slots |
283+
| **ebuild** | [embeddedos-org/ebuild](https://github.com/embeddedos-org/ebuild) | Build system — SDK generator, packaging |
284+
| **eipc** | [embeddedos-org/eipc](https://github.com/embeddedos-org/eipc) | IPC framework — Go + C SDK, HMAC auth |
285+
| **eai** | [embeddedos-org/eai](https://github.com/embeddedos-org/eai) | AI layer — LLM inference, agent loop |
286+
| **eni** | [embeddedos-org/eni](https://github.com/embeddedos-org/eni) | Neural interface — BCI, Neuralink adapter |
287+
| **eosim** | [embeddedos-org/eosim](https://github.com/embeddedos-org/eosim) | Multi-architecture simulator |
288+
| **EoStudio** | [embeddedos-org/EoStudio](https://github.com/embeddedos-org/EoStudio) | Design suite with LLM integration |
289+
290+
## Standards Compliance
291+
292+
This project is part of the EoS ecosystem and aligns with international standards including ISO/IEC/IEEE 15288:2023, ISO/IEC 12207, ISO/IEC/IEEE 42010, ISO/IEC 25000, ISO/IEC 25010, ISO/IEC 27001, ISO/IEC 15408, IEC 61508, ISO 26262, DO-178C, FIPS 140-3, POSIX (IEEE 1003), WCAG 2.1, and more. See the [EoS Compliance Documentation](https://github.com/embeddedos-org/.github/tree/master/docs/compliance) for full details including NTIA SBOM, SPDX, CycloneDX, and OpenChain compliance.
293+
294+
## 📜 License
201295

202-
MIT — see [LICENSE](LICENSE)
296+
MIT License — see [LICENSE](LICENSE) for details.

0 commit comments

Comments
 (0)