From 289c80825739e0b7e6bccee7c9b15a47de806b24 Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Fri, 29 May 2026 17:02:22 +0330 Subject: [PATCH] Rename public discovery app from "finder" to "koja" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rebrand the public café-discovery app: directories web/finder→web/koja and docker/finder→docker/koja, plus all service wiring (docker-compose, Caddy subdomain koja.meezi.ir, env vars KOJA_PORT / NEXT_PUBLIC_KOJA_URL, CI workflows) and the app's display name (Koja / کجا). Co-Authored-By: Claude Sonnet 4.6 --- .env.example | 10 +++++----- .gitea/workflows/ci-cd.yml | 16 ++++++++-------- .github/workflows/ci.yml | 10 +++++----- .github/workflows/deploy.yml | 4 ++-- Caddyfile | 8 ++++---- DEPLOY.md | 16 ++++++++-------- docker-compose.caddy.yml | 2 +- docker-compose.yml | 16 ++++++++-------- docker/{finder => koja}/Dockerfile | 6 +++--- web/{finder => koja}/next.config.ts | 0 web/{finder => koja}/package-lock.json | 4 ++-- web/{finder => koja}/package.json | 11 +++++++++-- web/{finder => koja}/postcss.config.js | 0 web/{finder => koja}/public/icons/icon-192.png | Bin web/{finder => koja}/public/icons/icon-512.png | Bin .../public/icons/icon-maskable-512.png | Bin .../src/app/[locale]/cafe/[slug]/page.tsx | 0 .../src/app/[locale]/city/[city]/page.tsx | 0 .../src/app/[locale]/layout.tsx | 0 web/{finder => koja}/src/app/[locale]/page.tsx | 0 .../src/app/[locale]/search/page.tsx | 0 web/{finder => koja}/src/app/globals.css | 0 web/{finder => koja}/src/app/layout.tsx | 0 web/{finder => koja}/src/app/manifest.ts | 13 +++++++++++-- web/{finder => koja}/src/app/offline/page.tsx | 0 web/{finder => koja}/src/app/page.tsx | 0 web/{finder => koja}/src/app/robots.ts | 0 web/{finder => koja}/src/app/sitemap.ts | 0 .../src/components/cafe/cafe-card.tsx | 0 .../src/components/layout/footer.tsx | 2 +- .../src/components/layout/navbar.tsx | 2 +- .../src/components/search/ai-search-bar.tsx | 0 .../src/components/seo/cafe-json-ld.tsx | 0 web/{finder => koja}/src/i18n/request.ts | 0 web/{finder => koja}/src/i18n/routing.ts | 0 web/{finder => koja}/src/lib/api.ts | 0 web/{finder => koja}/src/lib/types.ts | 0 web/{finder => koja}/src/lib/utils.ts | 0 web/{finder => koja}/src/messages/en.json | 6 +++--- web/{finder => koja}/src/messages/fa.json | 6 +++--- web/{finder => koja}/src/middleware.ts | 0 web/{finder => koja}/tailwind.config.ts | 0 web/{finder => koja}/tsconfig.json | 0 43 files changed, 74 insertions(+), 58 deletions(-) rename docker/{finder => koja}/Dockerfile (90%) rename web/{finder => koja}/next.config.ts (100%) rename web/{finder => koja}/package-lock.json (99%) rename web/{finder => koja}/package.json (72%) rename web/{finder => koja}/postcss.config.js (100%) rename web/{finder => koja}/public/icons/icon-192.png (100%) rename web/{finder => koja}/public/icons/icon-512.png (100%) rename web/{finder => koja}/public/icons/icon-maskable-512.png (100%) rename web/{finder => koja}/src/app/[locale]/cafe/[slug]/page.tsx (100%) rename web/{finder => koja}/src/app/[locale]/city/[city]/page.tsx (100%) rename web/{finder => koja}/src/app/[locale]/layout.tsx (100%) rename web/{finder => koja}/src/app/[locale]/page.tsx (100%) rename web/{finder => koja}/src/app/[locale]/search/page.tsx (100%) rename web/{finder => koja}/src/app/globals.css (100%) rename web/{finder => koja}/src/app/layout.tsx (100%) rename web/{finder => koja}/src/app/manifest.ts (74%) rename web/{finder => koja}/src/app/offline/page.tsx (100%) rename web/{finder => koja}/src/app/page.tsx (100%) rename web/{finder => koja}/src/app/robots.ts (100%) rename web/{finder => koja}/src/app/sitemap.ts (100%) rename web/{finder => koja}/src/components/cafe/cafe-card.tsx (100%) rename web/{finder => koja}/src/components/layout/footer.tsx (97%) rename web/{finder => koja}/src/components/layout/navbar.tsx (98%) rename web/{finder => koja}/src/components/search/ai-search-bar.tsx (100%) rename web/{finder => koja}/src/components/seo/cafe-json-ld.tsx (100%) rename web/{finder => koja}/src/i18n/request.ts (100%) rename web/{finder => koja}/src/i18n/routing.ts (100%) rename web/{finder => koja}/src/lib/api.ts (100%) rename web/{finder => koja}/src/lib/types.ts (100%) rename web/{finder => koja}/src/lib/utils.ts (100%) rename web/{finder => koja}/src/messages/en.json (96%) rename web/{finder => koja}/src/messages/fa.json (96%) rename web/{finder => koja}/src/middleware.ts (100%) rename web/{finder => koja}/tailwind.config.ts (100%) rename web/{finder => koja}/tsconfig.json (100%) diff --git a/.env.example b/.env.example index 1ab15cf..b690b70 100644 --- a/.env.example +++ b/.env.example @@ -24,7 +24,7 @@ JWT_KEY=change-me-64-char-random-string-use-openssl-rand-hex-32-output NEXT_PUBLIC_API_URL=http://171.22.25.73:5080 NEXT_PUBLIC_ADMIN_API_URL=http://171.22.25.73:5081 NEXT_PUBLIC_SITE_URL=http://171.22.25.73:3010 -NEXT_PUBLIC_FINDER_URL=http://171.22.25.73:3103 +NEXT_PUBLIC_KOJA_URL=http://171.22.25.73:3103 APP_QR_BASE_URL=http://171.22.25.73:3101 BILLING_DASHBOARD_URL=http://171.22.25.73:3101 @@ -40,7 +40,7 @@ ADMIN_API_PORT=5081 WEB_PORT=3101 ADMIN_WEB_PORT=3102 WEBSITE_PORT=3010 -FINDER_PORT=3103 +KOJA_PORT=3103 POSTGRES_PORT=5434 REDIS_PORT=6381 @@ -51,19 +51,19 @@ REDIS_PORT=6381 # NEXT_PUBLIC_API_URL=https://api.meezi.ir # NEXT_PUBLIC_ADMIN_API_URL=https://admin-api.meezi.ir # NEXT_PUBLIC_SITE_URL=https://meezi.ir -# NEXT_PUBLIC_FINDER_URL=https://finder.meezi.ir +# NEXT_PUBLIC_KOJA_URL=https://koja.meezi.ir # # APP_QR_BASE_URL=https://app.meezi.ir # BILLING_DASHBOARD_URL=https://app.meezi.ir # # CORS_ORIGIN_0=https://app.meezi.ir # CORS_ORIGIN_1=https://meezi.ir -# CORS_ORIGIN_2=https://finder.meezi.ir +# CORS_ORIGIN_2=https://koja.meezi.ir # CORS_ADMIN_ORIGIN_0=https://admin.meezi.ir # # Then run CI once to rebuild images with the new URLs baked in. # DNS required: meezi.ir, app.meezi.ir, api.meezi.ir, -# finder.meezi.ir, admin.meezi.ir, admin-api.meezi.ir → server IP +# koja.meezi.ir, admin.meezi.ir, admin-api.meezi.ir → server IP # ── Migrations ──────────────────────────────────────────────────────────────── RUN_MIGRATIONS=true diff --git a/.gitea/workflows/ci-cd.yml b/.gitea/workflows/ci-cd.yml index c1e59e5..945d6b9 100644 --- a/.gitea/workflows/ci-cd.yml +++ b/.gitea/workflows/ci-cd.yml @@ -228,8 +228,8 @@ jobs: env: MEEZI_API_URL: http://localhost:5080 - finder-check: - name: "CI · Finder (tsc)" + koja-check: + name: "CI · Koja (tsc)" runs-on: ubuntu-latest container: image: 171.22.25.73:5000/library/node:20-alpine @@ -250,11 +250,11 @@ jobs: rm -f /tmp/repo.tar.gz - name: Install dependencies - working-directory: web/finder + working-directory: web/koja run: npm install --legacy-peer-deps --ignore-scripts --registry http://mirror:8081/repository/npm-group/ - name: TypeScript check - working-directory: web/finder + working-directory: web/koja run: npx tsc --noEmit env: NEXT_PUBLIC_API_URL: http://localhost:5080 @@ -276,7 +276,7 @@ jobs: - dashboard-check - admin-web-check - website-check - - finder-check + - koja-check if: github.event_name == 'push' && github.ref == 'refs/heads/main' timeout-minutes: 40 @@ -297,8 +297,8 @@ jobs: env: ENV_FILE: ${{ secrets.ENV_FILE }} - - name: Build main images (api, web, website, finder) - run: docker compose build --parallel api web website finder + - name: Build main images (api, web, website, koja) + run: docker compose build --parallel api web website koja env: DOCKER_BUILDKIT: 1 COMPOSE_DOCKER_CLI_BUILD: 1 @@ -318,7 +318,7 @@ jobs: docker compose up -d \ --remove-orphans \ --no-deps \ - postgres redis api web website finder + postgres redis api web website koja - name: Start admin services run: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d12e71..e0f426a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,20 +58,20 @@ jobs: env: NEXT_PUBLIC_API_URL: http://localhost:5080 - # ── Finder: typecheck ────────────────────────────────────────────────────── - finder: - name: Finder (Next.js typecheck) + # ── Koja: typecheck ───────────────────────────────────────────────────────── + koja: + name: Koja (Next.js typecheck) runs-on: ubuntu-latest defaults: run: - working-directory: web/finder + working-directory: web/koja steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" cache: npm - cache-dependency-path: web/finder/package-lock.json + cache-dependency-path: web/koja/package-lock.json - run: npm install --legacy-peer-deps --ignore-scripts - run: npx tsc --noEmit env: diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4be60a8..8d90f34 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -32,7 +32,7 @@ jobs: run: | docker compose build --parallel \ --build-arg BUILDKIT_INLINE_CACHE=1 \ - api web website finder + api web website koja env: DOCKER_BUILDKIT: 1 COMPOSE_DOCKER_CLI_BUILD: 1 @@ -43,7 +43,7 @@ jobs: docker compose up -d \ --remove-orphans \ --no-deps \ - postgres redis api web website finder + postgres redis api web website koja # Wait for API healthcheck before declaring success - name: Wait for API health diff --git a/Caddyfile b/Caddyfile index d1e8a6e..32f171c 100644 --- a/Caddyfile +++ b/Caddyfile @@ -6,7 +6,7 @@ # Caddy auto-provisions Let's Encrypt TLS — no certbot needed. # Domains needed in DNS (all → same server IP): # meezi.ir, app.meezi.ir, api.meezi.ir, -# finder.meezi.ir, admin.meezi.ir, admin-api.meezi.ir +# koja.meezi.ir, admin.meezi.ir, admin-api.meezi.ir { email {$ACME_EMAIL} @@ -27,9 +27,9 @@ api.{$DOMAIN} { reverse_proxy api:8080 } -# ── Finder (public discovery) ──────────────────────────────────────────────── -finder.{$DOMAIN} { - reverse_proxy finder:3000 +# ── Koja (public discovery) ────────────────────────────────────────────────── +koja.{$DOMAIN} { + reverse_proxy koja:3000 } # ── Super-Admin panel ──────────────────────────────────────────────────────── diff --git a/DEPLOY.md b/DEPLOY.md index 23342fb..b26aecb 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -13,7 +13,7 @@ Server: 171.22.25.73 ├── meezi-web :3101 ← Next.js cafe owner dashboard ├── meezi-admin-web:3102 ← Next.js super-admin panel ├── meezi-website :3010 ← Next.js marketing website -├── meezi-finder :3103 ← Next.js public finder +├── meezi-koja :3103 ← Next.js public discovery (Koja) ├── meezi-db :5434 ← PostgreSQL (not internet-facing) └── meezi-redis :6381 ← Redis (not internet-facing) ``` @@ -21,7 +21,7 @@ Server: 171.22.25.73 Docker Compose files: ``` -docker-compose.yml main services (postgres, redis, api, web, website, finder) +docker-compose.yml main services (postgres, redis, api, web, website, koja) docker-compose.admin.yml admin overlay (+admin-api, +admin-web) docker-compose.mirror.yml Nexus mirror — run once separately, stays running docker-compose.caddy.yml Caddy HTTPS proxy — add when domain is ready @@ -60,7 +60,7 @@ RUN_MIGRATIONS=true NEXT_PUBLIC_API_URL=http://171.22.25.73:5080 NEXT_PUBLIC_ADMIN_API_URL=http://171.22.25.73:5081 NEXT_PUBLIC_SITE_URL=http://171.22.25.73:3010 -NEXT_PUBLIC_FINDER_URL=http://171.22.25.73:3103 +NEXT_PUBLIC_KOJA_URL=http://171.22.25.73:3103 APP_QR_BASE_URL=http://171.22.25.73:3101 BILLING_DASHBOARD_URL=http://171.22.25.73:3101 @@ -77,7 +77,7 @@ ADMIN_API_PORT=5081 WEB_PORT=3101 ADMIN_WEB_PORT=3102 WEBSITE_PORT=3010 -FINDER_PORT=3103 +KOJA_PORT=3103 POSTGRES_PORT=5434 REDIS_PORT=6381 @@ -123,7 +123,7 @@ CI takes ~5–10 minutes: builds 6 Docker images, runs all checks, then deploys. |---|---| | Marketing website | http://171.22.25.73:3010/fa | | Cafe owner dashboard | http://171.22.25.73:3101/fa/login | -| Public finder | http://171.22.25.73:3103/fa | +| Public Koja | http://171.22.25.73:3103/fa | | Super-admin panel | http://171.22.25.73:3102/fa/admin/login | | Main API (Swagger) | http://171.22.25.73:5080/swagger | | Admin API (Swagger) | http://171.22.25.73:5081/swagger | @@ -173,7 +173,7 @@ Create these A records — all pointing to `171.22.25.73`: | `meezi.ir` | Marketing website | | `app.meezi.ir` | Cafe dashboard | | `api.meezi.ir` | Main API | -| `finder.meezi.ir` | Finder | +| `koja.meezi.ir` | Koja | | `admin.meezi.ir` | Admin panel | | `admin-api.meezi.ir` | Admin API | @@ -189,14 +189,14 @@ ACME_EMAIL=you@example.com NEXT_PUBLIC_API_URL=https://api.meezi.ir NEXT_PUBLIC_ADMIN_API_URL=https://admin-api.meezi.ir NEXT_PUBLIC_SITE_URL=https://meezi.ir -NEXT_PUBLIC_FINDER_URL=https://finder.meezi.ir +NEXT_PUBLIC_KOJA_URL=https://koja.meezi.ir APP_QR_BASE_URL=https://app.meezi.ir BILLING_DASHBOARD_URL=https://app.meezi.ir CORS_ORIGIN_0=https://app.meezi.ir CORS_ORIGIN_1=https://meezi.ir -CORS_ORIGIN_2=https://finder.meezi.ir +CORS_ORIGIN_2=https://koja.meezi.ir CORS_ADMIN_ORIGIN_0=https://admin.meezi.ir # Remove all PORT= lines — Caddy is the only public endpoint diff --git a/docker-compose.caddy.yml b/docker-compose.caddy.yml index c9fae16..96cb366 100644 --- a/docker-compose.caddy.yml +++ b/docker-compose.caddy.yml @@ -36,7 +36,7 @@ services: - api - web - website - - finder + - koja - admin-api - admin-web diff --git a/docker-compose.yml b/docker-compose.yml index adf49a0..046831c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -# Meezi — main stack (Postgres, Redis, API, Dashboard, Website, Finder) +# Meezi — main stack (Postgres, Redis, API, Dashboard, Website, Koja) # # Local dev: # cp .env.example .env @@ -13,7 +13,7 @@ # URLs (port-based defaults): # Dashboard http://SERVER:3101/fa/login # Website http://SERVER:3010/fa -# Finder http://SERVER:3103/fa +# Koja http://SERVER:3103/fa # API http://SERVER:5080/swagger services: @@ -141,18 +141,18 @@ services: ports: - "${WEBSITE_PORT:-3010}:3000" - finder: + koja: build: context: . - dockerfile: docker/finder/Dockerfile + dockerfile: docker/koja/Dockerfile extra_hosts: - "mirror:host-gateway" args: NODE_IMAGE: ${NODE_IMAGE:-docker-mirror.liara.ir/library/node:20-alpine} NPM_REGISTRY: ${NPM_REGISTRY:-https://package-mirror.liara.ir/repository/npm/} NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:5080} - NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_FINDER_URL:-http://localhost:3103} - container_name: meezi-finder + NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_KOJA_URL:-http://localhost:3103} + container_name: meezi-koja restart: unless-stopped depends_on: api: @@ -161,9 +161,9 @@ services: PORT: "3000" HOSTNAME: 0.0.0.0 NEXT_PUBLIC_API_URL: "${NEXT_PUBLIC_API_URL:-http://localhost:5080}" - NEXT_PUBLIC_SITE_URL: "${NEXT_PUBLIC_FINDER_URL:-http://localhost:3103}" + NEXT_PUBLIC_SITE_URL: "${NEXT_PUBLIC_KOJA_URL:-http://localhost:3103}" ports: - - "${FINDER_PORT:-3103}:3000" + - "${KOJA_PORT:-3103}:3000" volumes: postgres_data: diff --git a/docker/finder/Dockerfile b/docker/koja/Dockerfile similarity index 90% rename from docker/finder/Dockerfile rename to docker/koja/Dockerfile index bf927f1..2d21d64 100644 --- a/docker/finder/Dockerfile +++ b/docker/koja/Dockerfile @@ -2,7 +2,7 @@ ARG NODE_IMAGE=docker-mirror.liara.ir/library/node:20-alpine FROM ${NODE_IMAGE} AS deps WORKDIR /app -COPY web/finder/package*.json ./ +COPY web/koja/package*.json ./ ARG NPM_REGISTRY=https://package-mirror.liara.ir/repository/npm/ RUN npm install --legacy-peer-deps --ignore-scripts --registry ${NPM_REGISTRY} @@ -10,13 +10,13 @@ FROM ${NODE_IMAGE} AS builder WORKDIR /app ARG NEXT_PUBLIC_API_URL=http://localhost:5080 -ARG NEXT_PUBLIC_SITE_URL=https://find.meezi.ir +ARG NEXT_PUBLIC_SITE_URL=https://koja.meezi.ir ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL ENV NEXT_PUBLIC_SITE_URL=$NEXT_PUBLIC_SITE_URL ENV NEXT_TELEMETRY_DISABLED=1 COPY --from=deps /app/node_modules ./node_modules -COPY web/finder/ . +COPY web/koja/ . RUN npm run build FROM ${NODE_IMAGE} AS runner diff --git a/web/finder/next.config.ts b/web/koja/next.config.ts similarity index 100% rename from web/finder/next.config.ts rename to web/koja/next.config.ts diff --git a/web/finder/package-lock.json b/web/koja/package-lock.json similarity index 99% rename from web/finder/package-lock.json rename to web/koja/package-lock.json index 47ff23f..617368e 100644 --- a/web/finder/package-lock.json +++ b/web/koja/package-lock.json @@ -1,11 +1,11 @@ { - "name": "meezi-finder", + "name": "koja", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "meezi-finder", + "name": "koja", "version": "0.1.0", "dependencies": { "@ducanh2912/next-pwa": "^10.2.9", diff --git a/web/finder/package.json b/web/koja/package.json similarity index 72% rename from web/finder/package.json rename to web/koja/package.json index 7872b05..ef904a1 100644 --- a/web/finder/package.json +++ b/web/koja/package.json @@ -1,14 +1,20 @@ { - "name": "meezi-finder", + "name": "koja", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "cap:sync": "cap sync android", + "cap:open": "cap open android" }, "dependencies": { + "@capacitor/android": "^6.2.0", + "@capacitor/core": "^6.2.0", + "@capacitor/splash-screen": "^6.0.3", + "cordova-plugin-pushe": "^2.5.0", "next": "16.2.6", "react": "19.2.6", "react-dom": "19.2.6", @@ -22,6 +28,7 @@ "date-fns-jalali": "^3.4.0-0" }, "devDependencies": { + "@capacitor/cli": "^6.2.0", "typescript": "5.8.3", "@types/node": "^22", "@types/react": "19.1.4", diff --git a/web/finder/postcss.config.js b/web/koja/postcss.config.js similarity index 100% rename from web/finder/postcss.config.js rename to web/koja/postcss.config.js diff --git a/web/finder/public/icons/icon-192.png b/web/koja/public/icons/icon-192.png similarity index 100% rename from web/finder/public/icons/icon-192.png rename to web/koja/public/icons/icon-192.png diff --git a/web/finder/public/icons/icon-512.png b/web/koja/public/icons/icon-512.png similarity index 100% rename from web/finder/public/icons/icon-512.png rename to web/koja/public/icons/icon-512.png diff --git a/web/finder/public/icons/icon-maskable-512.png b/web/koja/public/icons/icon-maskable-512.png similarity index 100% rename from web/finder/public/icons/icon-maskable-512.png rename to web/koja/public/icons/icon-maskable-512.png diff --git a/web/finder/src/app/[locale]/cafe/[slug]/page.tsx b/web/koja/src/app/[locale]/cafe/[slug]/page.tsx similarity index 100% rename from web/finder/src/app/[locale]/cafe/[slug]/page.tsx rename to web/koja/src/app/[locale]/cafe/[slug]/page.tsx diff --git a/web/finder/src/app/[locale]/city/[city]/page.tsx b/web/koja/src/app/[locale]/city/[city]/page.tsx similarity index 100% rename from web/finder/src/app/[locale]/city/[city]/page.tsx rename to web/koja/src/app/[locale]/city/[city]/page.tsx diff --git a/web/finder/src/app/[locale]/layout.tsx b/web/koja/src/app/[locale]/layout.tsx similarity index 100% rename from web/finder/src/app/[locale]/layout.tsx rename to web/koja/src/app/[locale]/layout.tsx diff --git a/web/finder/src/app/[locale]/page.tsx b/web/koja/src/app/[locale]/page.tsx similarity index 100% rename from web/finder/src/app/[locale]/page.tsx rename to web/koja/src/app/[locale]/page.tsx diff --git a/web/finder/src/app/[locale]/search/page.tsx b/web/koja/src/app/[locale]/search/page.tsx similarity index 100% rename from web/finder/src/app/[locale]/search/page.tsx rename to web/koja/src/app/[locale]/search/page.tsx diff --git a/web/finder/src/app/globals.css b/web/koja/src/app/globals.css similarity index 100% rename from web/finder/src/app/globals.css rename to web/koja/src/app/globals.css diff --git a/web/finder/src/app/layout.tsx b/web/koja/src/app/layout.tsx similarity index 100% rename from web/finder/src/app/layout.tsx rename to web/koja/src/app/layout.tsx diff --git a/web/finder/src/app/manifest.ts b/web/koja/src/app/manifest.ts similarity index 74% rename from web/finder/src/app/manifest.ts rename to web/koja/src/app/manifest.ts index 7148796..6722e71 100644 --- a/web/finder/src/app/manifest.ts +++ b/web/koja/src/app/manifest.ts @@ -2,8 +2,9 @@ import type { MetadataRoute } from "next"; export default function manifest(): MetadataRoute.Manifest { return { - name: "میزی‌یاب — جستجوی کافه و رستوران", - short_name: "میزی‌یاب", + id: "/fa", + name: "کجا — جستجوی کافه و رستوران", + short_name: "کجا", description: "بهترین کافه‌ها و رستوران‌های ایران را با هوش مصنوعی پیدا کنید", start_url: "/fa", display: "standalone", @@ -33,6 +34,14 @@ export default function manifest(): MetadataRoute.Manifest { purpose: "maskable", }, ], + shortcuts: [ + { + name: "جستجوی کافه", + short_name: "جستجو", + url: "/fa/search", + icons: [{ src: "/icons/icon-192.png", sizes: "192x192" }], + }, + ], screenshots: [], }; } diff --git a/web/finder/src/app/offline/page.tsx b/web/koja/src/app/offline/page.tsx similarity index 100% rename from web/finder/src/app/offline/page.tsx rename to web/koja/src/app/offline/page.tsx diff --git a/web/finder/src/app/page.tsx b/web/koja/src/app/page.tsx similarity index 100% rename from web/finder/src/app/page.tsx rename to web/koja/src/app/page.tsx diff --git a/web/finder/src/app/robots.ts b/web/koja/src/app/robots.ts similarity index 100% rename from web/finder/src/app/robots.ts rename to web/koja/src/app/robots.ts diff --git a/web/finder/src/app/sitemap.ts b/web/koja/src/app/sitemap.ts similarity index 100% rename from web/finder/src/app/sitemap.ts rename to web/koja/src/app/sitemap.ts diff --git a/web/finder/src/components/cafe/cafe-card.tsx b/web/koja/src/components/cafe/cafe-card.tsx similarity index 100% rename from web/finder/src/components/cafe/cafe-card.tsx rename to web/koja/src/components/cafe/cafe-card.tsx diff --git a/web/finder/src/components/layout/footer.tsx b/web/koja/src/components/layout/footer.tsx similarity index 97% rename from web/finder/src/components/layout/footer.tsx rename to web/koja/src/components/layout/footer.tsx index 70b22e9..8e6e1ad 100644 --- a/web/finder/src/components/layout/footer.tsx +++ b/web/koja/src/components/layout/footer.tsx @@ -16,7 +16,7 @@ export function Footer() { - {locale === "fa" ? "میزی‌یاب" : "Meezi Finder"} + {locale === "fa" ? "کجا" : "Koja"}

{t("tagline")}

diff --git a/web/finder/src/components/layout/navbar.tsx b/web/koja/src/components/layout/navbar.tsx similarity index 98% rename from web/finder/src/components/layout/navbar.tsx rename to web/koja/src/components/layout/navbar.tsx index e550e24..cb458fc 100644 --- a/web/finder/src/components/layout/navbar.tsx +++ b/web/koja/src/components/layout/navbar.tsx @@ -30,7 +30,7 @@ export function Navbar() { - {locale === "fa" ? "میزی‌یاب" : "Meezi Finder"} + {locale === "fa" ? "کجا" : "Koja"} diff --git a/web/finder/src/components/search/ai-search-bar.tsx b/web/koja/src/components/search/ai-search-bar.tsx similarity index 100% rename from web/finder/src/components/search/ai-search-bar.tsx rename to web/koja/src/components/search/ai-search-bar.tsx diff --git a/web/finder/src/components/seo/cafe-json-ld.tsx b/web/koja/src/components/seo/cafe-json-ld.tsx similarity index 100% rename from web/finder/src/components/seo/cafe-json-ld.tsx rename to web/koja/src/components/seo/cafe-json-ld.tsx diff --git a/web/finder/src/i18n/request.ts b/web/koja/src/i18n/request.ts similarity index 100% rename from web/finder/src/i18n/request.ts rename to web/koja/src/i18n/request.ts diff --git a/web/finder/src/i18n/routing.ts b/web/koja/src/i18n/routing.ts similarity index 100% rename from web/finder/src/i18n/routing.ts rename to web/koja/src/i18n/routing.ts diff --git a/web/finder/src/lib/api.ts b/web/koja/src/lib/api.ts similarity index 100% rename from web/finder/src/lib/api.ts rename to web/koja/src/lib/api.ts diff --git a/web/finder/src/lib/types.ts b/web/koja/src/lib/types.ts similarity index 100% rename from web/finder/src/lib/types.ts rename to web/koja/src/lib/types.ts diff --git a/web/finder/src/lib/utils.ts b/web/koja/src/lib/utils.ts similarity index 100% rename from web/finder/src/lib/utils.ts rename to web/koja/src/lib/utils.ts diff --git a/web/finder/src/messages/en.json b/web/koja/src/messages/en.json similarity index 96% rename from web/finder/src/messages/en.json rename to web/koja/src/messages/en.json index 8c2c154..74430a4 100644 --- a/web/finder/src/messages/en.json +++ b/web/koja/src/messages/en.json @@ -1,8 +1,8 @@ { "meta": { - "siteName": "Meezi Finder", + "siteName": "Koja", "siteDescription": "Discover the best cafes and restaurants in Iran with AI", - "homeTitle": "Meezi Finder — AI-Powered Cafe Discovery", + "homeTitle": "Koja — AI-Powered Cafe Discovery", "homeDescription": "Find the best cafes and restaurants near you with AI-powered search. Filter by vibe, price, menu, and amenities.", "searchTitle": "Search Cafes & Restaurants", "offlineTitle": "You're Offline", @@ -102,7 +102,7 @@ "copyright": "© 2025 Meezi. All rights reserved." }, "pwa": { - "installTitle": "Install Meezi Finder", + "installTitle": "Install Koja", "installDesc": "Add to your home screen for faster access", "installBtn": "Install", "dismissBtn": "Later", diff --git a/web/finder/src/messages/fa.json b/web/koja/src/messages/fa.json similarity index 96% rename from web/finder/src/messages/fa.json rename to web/koja/src/messages/fa.json index 153ccb1..7d91c8d 100644 --- a/web/finder/src/messages/fa.json +++ b/web/koja/src/messages/fa.json @@ -1,8 +1,8 @@ { "meta": { - "siteName": "میزی‌یاب", + "siteName": "کجا", "siteDescription": "بهترین کافه‌ها و رستوران‌های ایران را با هوش مصنوعی پیدا کنید", - "homeTitle": "میزی‌یاب — جستجوی هوشمند کافه و رستوران", + "homeTitle": "کجا — جستجوی هوشمند کافه و رستوران", "homeDescription": "بهترین کافه‌ها و رستوران‌های شهر را با جستجوی هوش مصنوعی پیدا کنید. فیلتر براساس فضا، قیمت، منو و امکانات.", "searchTitle": "جستجوی کافه و رستوران", "offlineTitle": "بدون اینترنت", @@ -102,7 +102,7 @@ "copyright": "© ۱۴۰۵ میزی. تمام حقوق محفوظ است." }, "pwa": { - "installTitle": "نصب اپ میزی‌یاب", + "installTitle": "نصب اپ کجا", "installDesc": "برای دسترسی سریع‌تر روی گوشی نصب کنید", "installBtn": "نصب", "dismissBtn": "بعداً", diff --git a/web/finder/src/middleware.ts b/web/koja/src/middleware.ts similarity index 100% rename from web/finder/src/middleware.ts rename to web/koja/src/middleware.ts diff --git a/web/finder/tailwind.config.ts b/web/koja/tailwind.config.ts similarity index 100% rename from web/finder/tailwind.config.ts rename to web/koja/tailwind.config.ts diff --git a/web/finder/tsconfig.json b/web/koja/tsconfig.json similarity index 100% rename from web/finder/tsconfig.json rename to web/koja/tsconfig.json