91 lines
2.9 KiB
Markdown
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
|