|
1 | | -# 📸 Application Preview Gallery |
2 | | - |
3 | | -## 🔷 Frontend Preview |
4 | | -| Screenshot | Screenshot | |
5 | | -|-----------|-----------| |
6 | | -| <a href="./docs/gallery/frontend-1.webp"><img src="./docs/gallery/frontend-1.webp" width="300" alt="Frontend UI 1"></a> | <a href="./docs/gallery/frontend-2.webp"><img src="./docs/gallery/frontend-2.webp" width="300" alt="Frontend UI 2"></a> | |
7 | | - |
8 | | -> *Klik gambar untuk memperbesar* |
9 | | -
|
10 | | ---- |
11 | | - |
12 | | -## 🔶 Backend Preview |
13 | | -| Screenshot | Screenshot | |
14 | | -|-----------|-----------| |
15 | | -| <a href="./docs/gallery/backend-1.webp"><img src="./docs/gallery/backend-1.webp" width="300" alt="Backend 1"></a> | <a href="./docs/gallery/backend-2.webp"><img src="./docs/gallery/backend-2.webp" width="300" alt="Backend 2"></a> | |
16 | | - |
17 | | -> *Klik gambar untuk memperbesar* |
18 | | -
|
19 | | - |
20 | 1 | # 🗂️ Windows Explorer Backend + Frontend |
21 | 2 |
|
22 | 3 | Backend API untuk aplikasi Windows Explorer-like berbasis web. Dibangun dengan arsitektur hexagonal (clean architecture), menggunakan Bun + Elysia + PostgreSQL + Redis, dan dioptimalkan untuk scalability. |
23 | 4 |
|
| 5 | +### example for ltree |
| 6 | +``` |
| 7 | +sequenceDiagram |
| 8 | + autonumber |
| 9 | + participant UI as Vue3 UI (composable/usecase FE) |
| 10 | + participant API as Elysia Controller |
| 11 | + participant UC as UseCase: SearchItems (BE) |
| 12 | + participant Cache as Redis |
| 13 | + participant Repo as Postgres (FTS) |
| 14 | +
|
| 15 | + UI->>API: GET /search?q=<query>&scope=<ltree_scope> |
| 16 | + API->>UC: call SearchItems(q, scope) |
| 17 | + UC->>Cache: GET search:{scope}:{norm_q} |
| 18 | + alt miss cache |
| 19 | + UC->>Repo: SELECT ... WHERE path_ltree <@ scope |
| 20 | + UC->>Repo: AND search_vector @@ plainto_tsquery('simple', unaccent(q)) |
| 21 | + Repo-->>UC: items[] |
| 22 | + UC->>Cache: SET search:{scope}:{norm_q} TTL=30s |
| 23 | + else hit cache |
| 24 | + Cache-->>UC: items[] |
| 25 | + end |
| 26 | + UC-->>API: items[] |
| 27 | + API-->>UI: 200 OK |
| 28 | +``` |
| 29 | + |
24 | 30 | ## 🚀 Tech Stack |
25 | 31 | ### Backend |
26 | 32 | - **Runtime**: Bun |
@@ -50,6 +56,24 @@ Backend API untuk aplikasi Windows Explorer-like berbasis web. Dibangun dengan a |
50 | 56 | - Load testing with k6 and wrk |
51 | 57 | - Query profiling with EXPLAIN ANALYZE |
52 | 58 |
|
| 59 | +## 📸 Application Preview Gallery |
| 60 | + |
| 61 | +### 🔷 Frontend Preview |
| 62 | +| Screenshot | Screenshot | |
| 63 | +|-----------|-----------| |
| 64 | +| <a href="./docs/gallery/frontend-1.webp"><img src="./docs/gallery/frontend-1.webp" width="300" alt="Frontend UI 1"></a> | <a href="./docs/gallery/frontend-2.webp"><img src="./docs/gallery/frontend-2.webp" width="300" alt="Frontend UI 2"></a> | |
| 65 | + |
| 66 | +> *Klik gambar untuk memperbesar* |
| 67 | +
|
| 68 | +--- |
| 69 | + |
| 70 | +### 🔶 Backend Preview |
| 71 | +| Screenshot | Screenshot | |
| 72 | +|-----------|-----------| |
| 73 | +| <a href="./docs/gallery/backend-1.webp"><img src="./docs/gallery/backend-1.webp" width="300" alt="Backend 1"></a> | <a href="./docs/gallery/backend-2.webp"><img src="./docs/gallery/backend-2.webp" width="300" alt="Backend 2"></a> | |
| 74 | + |
| 75 | +> *Klik gambar untuk memperbesar* |
| 76 | +
|
53 | 77 | ## 📦 Folder Structure |
54 | 78 |
|
55 | 79 | ``` |
@@ -132,6 +156,17 @@ OpenAPI spec tersedia di `api/docs/openapi.json`, dilint dengan Spectral untuk m |
132 | 156 |
|
133 | 157 | - `tests/query/explain-subtree.sql` |
134 | 158 |
|
| 159 | +## ✅ Requirements / Test By |
| 160 | + |
| 161 | +### Runtime & OS |
| 162 | +- **Bun** ≥ `1.2.22` |
| 163 | +- **OS**: macOS |
| 164 | + |
| 165 | +### Services |
| 166 | +- **PostgreSQL**: `14` |
| 167 | + - Extensions: `ltree` |
| 168 | +- **Redis** ≥ `7.2.7` |
| 169 | + |
135 | 170 | ## 📌 Setup |
136 | 171 |
|
137 | 172 | 1. Clone repository: |
@@ -178,5 +213,8 @@ explorer-fe dev $ bun --bun vite |
178 | 213 | └─ Running... |
179 | 214 | ``` |
180 | 215 |
|
| 216 | + |
| 217 | + |
| 218 | + |
181 | 219 | ## 🧠 Author |
182 | 220 | Yogi Arif Widodo |
0 commit comments