Files
dewemoji/legacy-system-audit.md
2026-02-03 21:58:14 +07:00

91 lines
2.9 KiB
Markdown

# Legacy System Audit (Retraced)
## Scope used for this audit
- `../dewemoji-api` (backend)
- `../dewemoji-chrome-ext` (chrome extension)
- `../dewemoji-site` (website)
## 1) Current reality by folder
### A) `dewemoji-api` (backend, currently functional)
- Contains working API routes and working web pages (`index.html`, `api-docs.html`).
- API files:
- `api/index.php`
- `api/emojis.php`
- `api/emoji.php`
- Helpers:
- `helpers/auth.php`
- `helpers/filters.php`
- Data pipeline:
- `tools/build-emojis.js`
- data in `data/*.json`
- Apache rewrite and security rules in `.htaccess`.
### B) `dewemoji-chrome-ext` (active extension)
- Manifest V3 extension with side panel UI.
- Main files:
- `manifest.json`
- `panel.js`, `panel.html`, `styles.css`
- `background.js`, `content.js`
- Uses remote API `https://api.dewemoji.com/v1`.
### C) `dewemoji-site` (website repo, currently scaffold)
- Folder exists with expected site structure (`index.php`, `api-docs.php`, `assets/`, `data/`, `helpers/`, etc.).
- Almost all files are currently **empty (0 bytes)**.
- Current state indicates scaffold/template placeholder, not active website logic.
## 2) Dataset snapshot (from `dewemoji-api`)
- Source: `../dewemoji-api/data/emojis.json`
- Emojis: **1910**
- Categories: **10** (`Activities`, `Animals & Nature`, `Component`, `Flags`, `Food & Drink`, `Objects`, `People & Body`, `Smileys & Emotion`, `Symbols`, `Travel & Places`)
- Subcategories: **99**
## 3) Feature inventory
### Backend/API (implemented in `dewemoji-api`)
- Public read API with pagination/filtering.
- `GET /api/emojis`
- `GET /api/emoji/{slug}`
- `GET /api/categories`
- CORS enabled for GET/OPTIONS.
- IP rate limit in router (60 requests / 60 seconds).
- ETag and cache headers.
### Chrome extension (implemented in `dewemoji-chrome-ext`)
- Search, category/subcategory filters.
- Free/Pro mode UX.
- License activation check flow.
- Copy / insert / auto mode.
- Skin tone preference + lock.
- Side panel and keyboard toggle command.
- Client cache + daily free usage tracking.
### Website (`dewemoji-site`)
- Not implemented yet (empty files).
- Current working website behavior still lives in `dewemoji-api` HTML/JS pages.
## 4) Important mismatches and risks
1. Query param mismatch in backend list endpoint:
- `api/emojis.php` reads `query`.
- Docs/client examples often send `q`.
2. Backend license validators are stubs:
- `isValidGumroad()` and `isValidMayar()` return `false`.
- Tier in this PHP backend effectively falls back to free.
3. Contract split:
- Backend folder exposes `/api/*`.
- Extension expects `/v1/*` on `api.dewemoji.com`.
4. Website source-of-truth gap:
- `dewemoji-site` is currently empty scaffold, so active website behavior is still in `dewemoji-api`.
## 5) Folder health snapshot
- `dewemoji-api`: 20 files, 20 non-empty (~4.3 MB)
- `dewemoji-chrome-ext`: 13 files, 13 non-empty (~135 KB)
- `dewemoji-site`: 40 files, 1 non-empty (`.gitignore`), rest empty scaffold