Dentalpin
Software de gestión de clínica dental gratis y open source: agenda, pacientes, odontograma, presupuestos y facturación. Te llevas el código, lo instalas donde quieras, sin cuotas por sillón ni por den
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
The phone app is in mobile/: an Expo (React Native) app that uses the same Supabase project and reuses the logic in src/lib. It has its own package.json and needs Node 22. Setup and commands: mobile/README.md. Architecture, decisions, the web-to-app parity table and what is still unverified (iOS, hosted Supabase): docs/MOBILE.md.
The app deletes accounts through this website's DELETE /api/account endpoint, so that endpoint must be deployed before the app can delete accounts on a hosted project.
The log in and sign-up pages can show Continue with Google. It stays hidden until you turn it on.
In Google Cloud Console, create an OAuth client ID (type: Web application).
Add this authorized redirect URI: http://127.0.0.1:54321/auth/v1/callback.
Put the client ID and secret in supabase/.env (ignored by git, never commit it):
SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID=your-client-id
SUPABASE_AUTH_EXTERNAL_GOOGLE_SECRET=your-secret
In supabase/config.toml, set enabled = true under [auth.external.google], then run npx supabase stop and npx supabase start.
Add NEXT_PUBLIC_GOOGLE_AUTH_ENABLED=true to .env.local and restart npm run dev.
With the flag on but Google not set up, the button says Google sign-in is not set up yet.
Hosted projects (Vercel + Supabase):
https://<project-ref>.supabase.co/auth/v1/callback for each Supabase project (staging and production).NEXT_PUBLIC_GOOGLE_AUTH_ENABLED=true in Vercel (Production, and Preview for staging) and redeploy.To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
npm run typecheck
npm run lint
npm test
npm run build
npm run test:db
npm run test:e2e
npm run test:e2e builds the app and runs the Playwright smoke test in e2e/ against local Supabase, at phone and desktop sizes. It opens every public and signed-in page and runs axe (WCAG 2.1 A and AA; any violation fails), logs in, saves a weigh-in and logs out. It also signs up a new account and opens the confirmation link from Mailpit (local Supabase's mail catcher, MAILPIT_URL, default http://127.0.0.1:54324). It creates throwaway users with the admin key from .env.local, refuses to run unless Supabase is on 127.0.0.1, and deletes the users afterwards. Install the browser once with npx playwright install chromium. After changing supabase/config.toml (for example the allowed redirect URLs), restart local Supabase with npx supabase stop then npx supabase start; stop keeps your data. CI runs it in the e2e job on a fresh local stack.
npm run test:db runs the database tests in supabase/tests/database (pgTAP: grants, row-level security and the save functions) against local Supabase, so start it first with npx supabase start. Each test file runs in one transaction and is rolled back.
CI runs the same checks on every push and pull request (.github/workflows/ci.yml); the database tests run in their own job on a fresh database with the migrations and supabase/seed.sql. Copy .env.example to .env.local for local settings.
Do not deploy until the launch review in docs/PLAN.md is done. Setup, deploys, monitoring, backups and rollback are in docs/RUNBOOK.md.