Phase 8: Native push, deep links, offline sync, LLM locale - #9
Draft
maouM-cmd wants to merge 8 commits into
Draft
Conversation
New Next.js app for community prompt writing practice: - Challenge list with seed data and admin CRUD - Real-time rule-based prompt structure scoring - Star ratings from other users with leaderboard - Session-based nickname auth, history, sharing - Docker and Render deployment config Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
…eval, OAuth, ads - Comments and reports with auto-hide after 3 reports - Admin moderation for submissions, pending challenges, reports - User-submitted challenges with pending/approve workflow - OpenAI LLM scoring on submission with daily rate limit - Google OAuth via NextAuth v5 alongside nickname sessions - AdSlot on home, challenge detail, leaderboard pages - Updated docs, privacy policy, and Render env vars Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
…ge gen, email auth, push - Comment threads with parent_id and reply UI (max 2 levels) - GitHub and Apple OAuth via refactored NextAuth providers - LLM challenge generation API and UI for users and admin - Email/password register and login with bcrypt - Web push notifications on comment, rating, challenge approval - Service worker, push subscribe API, history page notify button - Updated REQUIREMENTS, README, render.yaml, privacy policy Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
- Add email verification flow with SMTP mailer and auth tokens - Add password reset via forgot/reset pages and APIs - Enforce email verification for submissions, comments, and challenges - Support recursive comment threads up to 5 levels deep - Add PWA manifest, icons, and shared service worker registration - Update REQUIREMENTS.md and privacy policy for Phase 4 Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
- Add categories, tags, and challenge filtering (DB, API, UI) - Integrate next-intl with ja/en routing and LocaleSwitcher - Extend service worker with cache strategy and offline page - Localize mail templates and main auth/home UI - Update REQUIREMENTS.md to v5.0 Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
- Add api-errors.ts and mapApiError for localized API error codes - Extend errorCode coverage across auth, admin, session, and CRUD routes - Complete UI i18n for auth pages, submission detail, and shared components - Add English terms/privacy content via LegalContent component - Implement IndexedDB offline queue with OfflineSyncProvider and SyncBadge - Add Capacitor mobile shell (mobile/) with setup README - Update REQUIREMENTS.md to v6.0 Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
- Add mapApiMessage for localized API success messageCode responses - Migrate report, register, and challenges APIs to messageCode/errorCode - Localize AdminDashboard, ReportButton, PushNotifyButton, LLMEvaluationDisplay, AdSlot - Add locale-aware prompt evaluator and evaluate API - Add PWA icons and per-locale manifest.webmanifest route - Update REQUIREMENTS.md to v7.0 Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
- Add push-messages.ts for localized push titles and locale-prefixed URLs - Add device_tokens table, register-device API, and FCM via firebase-admin - Add NativePushRegistrar, Capacitor deeplink handler, and push UI updates - Add .well-known files for Universal Links and App Links - Add Background Sync in sw.js and registerBackgroundSync in offline queue - Localize LLM evaluator and challenge generator by user locale - Update REQUIREMENTS.md to v8.0, render.yaml, and mobile README Co-authored-by: maouM-cmd <maouM-cmd@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements Phase 8 for Prompt Dojo: localized push notifications, native FCM support, deep links, Background Sync, and locale-aware LLM generation.
Push i18n
push-messages.tswithsendLocalizedPush()using recipientpreferred_localepushNotificationsmessage namespace (ja/en)/en/submissions/42)Native push backend
device_tokenstable and CRUD helpers indb.tsPOST/DELETE /api/push/register-devicefor Capacitor FCM tokenspush.tswithfirebase-adminFCM multicast (optional when env vars set)Capacitor client
@capacitor/core,@capacitor/app,@capacitor/push-notificationsNativePushRegistrarauto-registers tokens on native platformscapacitor-deeplink.tshandlesprompt-dojo://and https deep linksPushNotifyButtonsupports both web and native subscribe flowsDeep links
.well-known/apple-app-site-associationandassetlinks.jsonmobile/README.mdwith Firebase, Universal Links, and App Links setupBackground Sync
sw.jssync handler flushes IndexedDB offline queueregisterBackgroundSync()called after enqueue in PromptForm/CommentSectiononlineevent sync retained as fallbackLLM locale
evaluatePromptWithLLMandgenerateChallengeWithLLMaccept localepreferred_localefor auto + LLM evaluationDocumentation
REQUIREMENTS.mdv8.0render.yamlFirebase env varsVerification
npm run build— passnpm run lint— passManual checks
/enAI challenge generation returns English contentcap add(seemobile/README.md)