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
Translation pending
Simple starting calorie and macro estimates.
Translation pending
HealthTypeScript · PLpgSQLGitHub @ArvinceRamosOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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.