Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Ooruda is a premium Software-as-a-Service (SaaS) application built for housing association and property management. It is designed using a multi-tenant architecture on top of Next.js 16 (App Router), Supabase (Postgres, Auth, Storage), Tailwind CSS 4, and Turborepo.
auth.users.id = accounts.id).super-admin: Platform-wide administrator with control over dashboards, user accounts, subscription metrics, and association creation.assoc_admin: Association Admin owning and managing the settings and memberships of their team/association.billing_operator: Association operator responsible for billing, receipts, and invoices.prop_owner: Property Owner within an association.tenant: Tenant occupying a property within an association./admin):
| Directory | Purpose | Detail |
|---|---|---|
apps/web | Main Next.js Product App | Contains marketing pages, auth, user workspaces, and super-admin panels. |
apps/web/supabase | Backend Migrations & Config | Handles local database schemas, seeds, and migration logic. |
apps/e2e | Playwright E2E Tests | End-to-end testing scripts. |
packages/ui | Core Component Library | Design system elements (@kit/ui) styled with Tailwind and CSS variables. |
packages/supabase | Supabase Clients & SDK | Preconfigured Supabase hooks, browser clients, and server clients. |
packages/next | Next.js Utilities | Safe action clients (authActionClient) and enhancements for route handlers. |
packages/features | Shared Feature Modules | Domain modules (e.g., admin, accounts, auth, billing, team-accounts). |
v20.10.0 or higherv9.15.0 or higherClone the repository and install the dependencies:
pnpm install
Start the local Supabase environment (launches PostgreSQL, Auth, and Storage locally inside Docker):
pnpm supabase:web:start
To reset the database, apply migrations, and run seed files:
pnpm supabase:web:reset
Generate TypeScript types for your Supabase database:
pnpm supabase:web:typegen
Start Next.js and Tailwind dev server:
pnpm dev
The app will be accessible at http://localhost:3000.
getSupabaseServerClient() from @kit/supabase/server-client. Row-Level Security (RLS) is automatically enforced based on the session token.useSupabase() hook from @kit/supabase/hooks.getSupabaseServerAdminClient() from @kit/supabase/server-admin-client when performing actions that bypass RLS (e.g., in a background job or admin actions). Ensure manual validation is done first.Actions are written using authActionClient from @kit/next/safe-action to ensure type-safe parameters, parsed input validations (using Zod schemas), and automatic authentication checks.
import { authActionClient } from '@kit/next/safe-action';
import { z } from 'zod';
export const myAction = authActionClient
.inputSchema(z.object({ id: z.string().uuid() }))
.action(async ({ parsedInput: { id }, ctx }) => {
// ctx.user contains the authenticated caller
});
Before pushing code, run the verification commands:
pnpm typecheck # Run compiler checks
pnpm lint:fix # Fix lint errors with oxlint
pnpm format:fix # Format code with oxfmt
Deployment consists of deploying the frontend Next.js application to Vercel and linking migrations/Edge functions to Supabase.
Detailed deployment instructions, required environment variables, and SMS/OTP configurations are listed in DEPLOYMENT.md.