Files
dewemoji/rebuild-progress.md
2026-02-03 22:37:52 +07:00

2.7 KiB

NativePHP Rebuild Progress (Retraced)

Confirmed source folders

  • Backend: ../dewemoji-api
  • Chrome extension: ../dewemoji-chrome-ext
  • Website: ../dewemoji-site (currently scaffold/empty)

Current baseline

  • Active backend logic exists in dewemoji-api.
  • Active extension logic exists in dewemoji-chrome-ext.
  • dewemoji-site currently has structure but no implemented content (mostly 0-byte files).
  • New rebuild app scaffold now exists at app/ (Laravel + NativePHP Desktop installed).

Phase checklist

Phase 0 - Retrace and documentation

  • Revalidated source folders with corrected names.
  • Rebuilt docs against corrected folders.
  • Marked dewemoji-site as scaffold status.

Phase 1 - Foundation

  • Initialize NativePHP app in dewemoji (app/ folder).
  • Install NativePHP Desktop scaffolding (config/nativephp.php, NativeAppServiceProvider).
  • Define initial env/config strategy (documented in phase-1-foundation.md).
  • Decide canonical data source: start from dewemoji-api/data/emojis.json.

Phase 2 - API parity (extension first)

  • Implement GET /v1/emojis.
  • Implement GET /v1/categories.
  • Implement POST /v1/license/verify.
  • Preserve response/header compatibility (X-Dewemoji-Tier).
  • Support both q and query inputs.

Phase 3 - Website rebuild

  • Build website pages in new app (index, emoji detail, api docs, legal pages).
  • Replace scaffold in dewemoji-site via new NativePHP output.

Phase 4 - Extension integration

  • Point dewemoji-chrome-ext API base to new app endpoint.
  • Validate free/pro flow, insert mode, and tone behavior.

Phase 5 - Quality and release

  • Add endpoint tests + regression checks for extension-critical fields.
  • Add migration and rollback checklist.

Critical risks to address early

  • Backend mismatch: q vs query.
  • Backend tier validation stubs in legacy PHP.
  • Contract differences between current /api/* and extension /v1/*.
  • Website source currently split (dewemoji-api active pages vs dewemoji-site empty scaffold).

Implementation notes (Phase 2)

  • Routes are now available at /v1/* (no /api prefix) for extension compatibility.
  • License verification is currently environment-driven (DEWEMOJI_LICENSE_ACCEPT_ALL / DEWEMOJI_PRO_KEYS) as a safe stub before real provider integration.
  • Test coverage added for v1 endpoints in app/tests/Feature/ApiV1EndpointsTest.php.

Implementation notes (Phase 3)

  • Added website routes/pages in Laravel app:
    • /, /emoji/{slug}, /api-docs, /pricing, /privacy, /terms
  • Home page now consumes /v1/categories and /v1/emojis directly.
  • Added page tests in app/tests/Feature/SitePagesTest.php.