Skip to content

ArdenoStudio/dinaya

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

661 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dinaya

Sri Lanka booking platform for local businesses — built by Ardeno Studio
Public booking pages, PayHere payments, automated reminders, CRM, and AI growth workflows.

Status live Website dinaya.lk Stack Next.js and Neon Deployed on Vercel Market Sri Lanka

CI React 19 TypeScript Node.js 22 PayHere payments Neon Postgres

dinaya.lk · Deployment checklist · Dinaya MCP · GitHub Actions


Features

Area What you get
Booking Branded public pages at /book/[slug] and {slug}.dinaya.lk subdomains
Payments PayHere checkout and subscription billing for Starter / Pro / Growth plans
Operations Business dashboard — calendar, clients, locations, staff, automations
Growth Reviews, referrals, directory discovery, AI workflow hub
Integrations Google Calendar sync, webhooks, API keys, WhatsApp / SMS messaging
Platform Internal admin for plans, support, health, and webhooks

Stack

  • Framework — Next.js 16 (App Router), React 19, TypeScript
  • Data — Neon Postgres, Drizzle ORM
  • Auth — NextAuth (credentials)
  • Payments & comms — PayHere, Resend; Groq/OpenAI-compatible AI workflows

Local setup

Prerequisites

  • Node.js 22 (matches CI)
  • A Neon database

1. Install dependencies

npm install

2. Environment variables

cp .env.example .env.local

Minimum for local development:

Variable Example / notes
DATABASE_URL Neon connection string
AUTH_SECRET openssl rand -base64 32
NEXT_PUBLIC_APP_URL http://localhost:3000

See .env.example for PayHere, cron, Google Calendar, Redis, and optional integrations.

3. Database migrations

npm run db:migrate

4. Start the dev server

npm run dev

Contributors using Cursor: see AGENTS.md for repo conventions and agent context.

Scripts

Command Description
npm run dev Start development server
npm run build Production build
npm test Unit tests (Vitest)
npm run test:e2e Playwright end-to-end tests
npm run lint ESLint
npm run verify Lint + test + build (same as CI verify job)
npm run db:migrate Apply Drizzle migrations
npm run db:studio Open Drizzle Studio
npm run docs:screenshots Regenerate docs UI screenshots
npm run mcp:dinaya Start Dinaya MCP server (stdio)
npm run mcp:dinaya:self-test Run Dinaya MCP self-test snapshot

Architecture

Public booking (/book/[slug])     → API routes → Neon Postgres
Business dashboard (/dashboard)   → authenticated CRUD APIs
Platform admin (/admin)           → internal operations
Cron (/api/cron/*)                → reminders, automations, AI workflows

Subdomain routing rewrites {slug}.dinaya.lk to /book/[slug] via middleware.

CI & scheduled jobs

Workflow Trigger Purpose
CI Push to master / main, all PRs npm run verify; Playwright e2e on PRs when secrets are set
Automations cron Every 15 min Run tenant automations
Booking reminders Scheduled Send booking reminders
Google Calendar Scheduled Sync calendars
AI workflows Scheduled Process AI hub jobs
Webhook retries Scheduled Retry failed outbound webhooks

PR e2e requires repository secrets DATABASE_URL and AUTH_SECRET — see docs/deployment-checklist.md.

Deployment

Production checklist, environment variables, cron secrets, and smoke tests:

docs/deployment-checklist.md

Security

  • Set AUTH_SECRET and SECRET_ENCRYPTION_KEY in production.
  • Protect health endpoints with HEALTH_CHECK_SECRET or CRON_SECRET.
  • Cron routes require Authorization: Bearer $CRON_SECRET.

Project structure

src/app/          Next.js routes (booking, dashboard, admin, API, docs)
src/components/   UI for booking flow, dashboard, and docs
src/lib/          Domain logic, integrations, schemas
drizzle/          SQL migrations
.github/workflows CI and production cron invokers
public/           Static assets (including dinaya-logo.svg)

Built by Ardeno Studio

About

Booking SaaS for Sri Lankan SMBs — dinaya.lk

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors