Skip to content

Latest commit

 

History

167 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DARIIZ

DARIIZ is a React/Capacitor dating assistant app backed by Supabase, a Cloud Run AI/API service, and Google Play Billing. The current release line includes AI reply suggestions, venue discovery, Action Plans, admin CMS tools, notifications, and premium entitlement sync.

Deployment Configuration

  • Web app URL: configure with VITE_SITE_URL
  • Supabase project: link locally with the Supabase CLI
  • Cloud Run API URL: configure with VITE_API_BASE_URL
  • Android package: com.dariiz.app
  • Android release: versionName 2.3.0, versionCode 15
  • Google Play subscription product: dariiz_premium_monthly
  • Google Play base plan: monthly
  • Main release branch: main

Stack

  • Frontend: Vite, React, TypeScript, Tailwind CSS, shadcn/ui
  • Mobile shell: Capacitor Android
  • Auth/database/RLS/API layer: Supabase
  • Serverless API: Supabase Edge Functions
  • AI and Google Play verification gateway: Cloud Run dariiz-api
  • AI provider path: Cloud Run -> Vertex/Gemini
  • Billing path: Android Play Billing -> Supabase -> Cloud Run -> Google Play Developer API

Local Setup

npm ci
copy .env.example .env.local
npm run dev -- --host 127.0.0.1 --port 5173

Fill only public frontend values in local/Vercel frontend env:

  • VITE_SUPABASE_URL
  • VITE_SUPABASE_ANON_KEY or VITE_SUPABASE_PUBLISHABLE_KEY
  • VITE_API_BASE_URL
  • VITE_GOOGLE_PLAY_PACKAGE_NAME
  • VITE_GOOGLE_PLAY_PRODUCT_ID
  • VITE_GOOGLE_PLAY_PREMIUM_BASE_PLAN_ID

Do not put service-role keys, Google service account JSON, RTDN secrets, or AI gateway API keys into browser-delivered env vars.

Main Commands

npm run dev
npm run build
npm run lint
npm run test
npm run cloudrun:check
npm run android:debug
npm run android:bundle

Android release artifact:

android/app/build/outputs/bundle/release/app-release.aab

Documentation Index

High-Level Flow

flowchart LR
  UI["React/Vite + Capacitor app"] --> Auth["Supabase Auth"]
  UI --> Edge["Supabase Edge Functions"]
  Edge --> DB["Supabase Postgres + RLS"]
  Edge --> API["Cloud Run dariiz-api"]
  API --> AI["Vertex/Gemini"]
  UI --> Play["Google Play Billing"]
  Play --> Edge
  Edge --> API
  API --> GP["Google Play Developer API"]
Loading

Frontend never calls Cloud Run with secrets directly. Supabase Edge Functions own auth, quota, RLS-safe data access, and server-side secret usage. Cloud Run owns the AI gateway, venue ranker, Action Plans assist, and Google Play verification/cancellation helper routes.

Deploy Summary

Supabase:

supabase migration up --linked
supabase functions deploy action-plans --project-ref YOUR_PROJECT_REF
supabase functions deploy action-plans-admin --project-ref YOUR_PROJECT_REF
supabase functions deploy verify-google-purchase --project-ref YOUR_PROJECT_REF
supabase functions deploy google-play-rtdn --project-ref YOUR_PROJECT_REF

Vercel:

vercel deploy --prod --yes

Cloud Run:

npm run cloudrun:prepare
npm run cloudrun:deploy

Google Play:

npm run android:bundle

Then upload the AAB from android/app/build/outputs/bundle/release/app-release.aab to a Play testing/release track.

Release Verification Gate

Before shipping a release, verify:

  • npm run test
  • npm run lint
  • npx tsc --noEmit
  • npm run build
  • supabase db lint --linked
  • Supabase function list shows required functions ACTIVE
  • Cloud Run GET / returns status: ok
  • Vercel production route /action-plans/new returns 200
  • Android AAB has a new versionCode
  • Google Play purchase/restore and RTDN are tested with a real Play tester

Security Notes

  • .env.local, Android keystores, service account JSON, and build output are intentionally ignored.
  • SUPABASE_SERVICE_ROLE_KEY is server-side only.
  • AI_GATEWAY_API_KEY is used by Supabase Edge Functions and Cloud Run, not the browser.
  • User ownership is enforced in Supabase functions/RLS; frontend checks are UX only.

About

DARIIZ is an AI-powered dating assistant for natural conversations, venue discovery, and personalized date action plans.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages