Skip to content

Commit d311ab8

Browse files
authored
Merge pull request #26 from joseiedo/001-epic-games-integration
feat: Epic Games library integration
2 parents 33d57a4 + 4d7f270 commit d311ab8

10 files changed

Lines changed: 483 additions & 42 deletions

File tree

CLAUDE.md

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ A Tauri desktop application that acts as a personal game library manager, allowi
2222
- Sorting options: alphabetical, recently added, playtime
2323

2424
## Tech Stack
25-
- **Frontend:** Tauri + React (TypeScript)
25+
- **Frontend:** Tauri + Vue 3 (TypeScript)
2626
- **Backend (Rust):** Tauri commands for file system access, Steam VDF parsing, and process spawning
2727
- **Styling:** Tailwind CSS for the library UI
2828

@@ -33,22 +33,32 @@ A Tauri desktop application that acts as a personal game library manager, allowi
3333
- Use Java records for DTOs (when applicable to any JVM tooling in the project)
3434
- Keep methods that handle data inside the relevant class (high cohesion)
3535

36-
## Project Structure (planned)
36+
## Project Structure (actual)
3737
```
3838
game-library/
39-
├── src/ # React frontend
39+
├── src/ # Vue 3 frontend
4040
│ ├── components/
41-
│ │ ├── GameCard.tsx
42-
│ │ ├── GameGrid.tsx
43-
│ │ └── Sidebar.tsx
44-
│ └── pages/
45-
│ └── Library.tsx
41+
│ │ ├── GameCard.vue
42+
│ │ ├── GameGrid.vue
43+
│ │ ├── Sidebar.vue
44+
│ │ ├── AddGameModal.vue
45+
│ │ ├── LaunchConfirmDialog.vue
46+
│ │ ├── FileExplorer.vue
47+
│ │ └── VirtualKeyboard.vue
48+
│ ├── composables/
49+
│ │ └── useGamepad.ts
50+
│ ├── types/
51+
│ │ └── game.ts
52+
│ ├── App.vue
53+
│ └── main.ts
4654
├── src-tauri/ # Rust backend
4755
│ ├── src/
4856
│ │ ├── main.rs
57+
│ │ ├── lib.rs # Tauri commands and app state
4958
│ │ ├── steam.rs # Steam VDF parsing & game discovery
50-
│ │ ├── library.rs # Non-steam game management
51-
│ │ └── launcher.rs # Game process spawning
59+
│ │ ├── library.rs # Custom game management (JSON persistence)
60+
│ │ ├── launcher.rs # Game process spawning and URI dispatch
61+
│ │ └── fs_explorer.rs # File system utilities
5262
│ └── tauri.conf.json
5363
└── CLAUDE.md
5464
```
@@ -66,3 +76,10 @@ game-library/
6676
- **Gamepad (Controller):** D-pad / left stick to move focus between game cards, A/Cross to launch, B/Circle to go back, trigger or bumper shortcuts for filtering
6777
- Controller input handled via the frontend (e.g., `gamepad` browser API available in Tauri's WebView)
6878
- Visual focus indicator must be clearly visible for controller navigation (big cursor / highlight on focused card)
79+
80+
## Active Technologies
81+
- Rust (backend), TypeScript 5 + Vue 3 (frontend) + `serde_json` (already in Cargo.toml), `thiserror` (already used), (001-epic-games-integration)
82+
- None — Epic manifests are read-only; no new persistence layer needed (001-epic-games-integration)
83+
84+
## Recent Changes
85+
- 001-epic-games-integration: Added Rust (backend), TypeScript 5 + Vue 3 (frontend) + `serde_json` (already in Cargo.toml), `thiserror` (already used),

src-tauri/Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ crate-type = ["staticlib", "cdylib", "rlib"]
1818
tauri-build = { version = "2", features = [] }
1919

2020
[dependencies]
21-
tauri = { version = "2", features = [] }
21+
tauri = { version = "2", features = ["protocol-asset"] }
2222
tauri-plugin-opener = "2"
2323
serde = { version = "1", features = ["derive"] }
2424
serde_json = "1"

0 commit comments

Comments
 (0)