Ciência, criatividade e experiência em neuropediatria reunidas em um espaço educativo para profissionais e famílias.
Translation pending
HealthTypeScript · JavaScriptGitHub @jadsonfragaOnlineOwner 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
PWA de neuropediatria - Dr. Jadson Fraga
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Aplicativo clinico de neuropediatria com backend real, autenticacao, criptografia AES-GCM, conformidade LGPD substantiva e route guards. Construido para uso profissional do Dr. Jadson Fraga (CRM-PE 25227, RQE 17756). ⚠️ Uso clínico restrito. Este sistema processa dados de saúde de crianças. Operar em conformidade com LGPD e normas do CFM. URL canônica de produção: https://neuroped.pages.dev bash cd "NeuroPed Escalas de Neuropedia" npm install bash cp .env.examplRead the full README ↗
Aplicativo clinico de neuropediatria com backend real, autenticacao, criptografia AES-GCM, conformidade LGPD substantiva e route guards. Construido para uso profissional do Dr. Jadson Fraga (CRM-PE 25227, RQE 17756).
⚠️ Uso clínico restrito. Este sistema processa dados de saúde de crianças. Operar em conformidade com LGPD e normas do CFM. URL canônica de produção: https://neuroped.pages.dev
| Camada | Tecnologia |
|---|---|
| Frontend | React 18 + Vite 8 + Tailwind + Radix UI + wouter |
| Backend canônico | Cloudflare Pages Functions + D1 |
| Backend local | Express 5 + TypeScript via tsx |
| ORM | Drizzle |
| Banco | D1 em produção; SQLite (better-sqlite3) no Express local |
| Auth | JWT (HS256) access + opaque refresh com rotacao + bcrypt |
| Cripto | AES-256-GCM server-side; rascunhos locais com chave efêmera não persistida |
| nodemailer com SMTP (Brevo/Resend/SES recomendado) | |
| Seguranca | helmet + rate-limit + CORS restrito + audit logs |
.
|- server/
| |- index.ts # Entry Express
| |- routes.ts # Rotas /api/*
| |- storage.ts # Drizzle + bootstrap admin
| |- static.ts # Servidor estatico em prod
| |- vite.ts # Vite dev integration
| |- auth/
| | |- routes.ts # /api/auth/* (register/login/refresh/logout/me)
| |- middleware/
| | |- auth.ts # requireAuth, requireRole
| | |- security.ts # helmet, cors, rate-limit
| |- lib/
| |- crypto.ts # AES-GCM encrypt/decrypt + HMAC + tokens
| |- password.ts # bcrypt + lockout
| |- jwt.ts # access/refresh tokens
| |- audit.ts # log de auditoria
| |- email.ts # nodemailer SMTP
| |- patientCrypto.ts # camada de cripto para Patient
|- client/src/
| |- App.tsx # Router com RouteGuard nas rotas sensiveis
| |- contexts/
| | |- AuthContext.tsx
| |- components/
| | |- RouteGuard.tsx
| |- lib/
| | |- authClient.ts # fetch wrapper + refresh automatico
| |- pages/
| |- login.tsx
| |- session-expired.tsx
| |- lgpd-consent.tsx
| |- ... (75+ paginas de escalas)
|- shared/
| |- schema.ts # Drizzle schemas + Zod validators
|- .env.example
|- package.json
|- README.md
|- DEPLOY.md
|- LGPD.md
|- SECURITY.md
|- CONTRIBUTING.md
|- HOSPEDAGEM.md # comparativo Brasil
cd "NeuroPed Escalas de Neuropedia"
npm install
cp .env.example .env
# Edite .env e preencha:
# NEUROPED_MASTER_KEY (gere com: node -e "console.log(require('crypto').randomBytes(48).toString('base64'))")
# NEUROPED_JWT_SECRET (gere com: node -e "console.log(require('crypto').randomBytes(64).toString('base64'))")
# ADMIN_EMAIL, ADMIN_NAME, ADMIN_INITIAL_PASSWORD
# SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM
npm run dev
O servidor sobe em http://localhost:5000 (frontend + backend juntos via Vite middleware).
Apos primeiro npm run dev, o usuario admin e criado automaticamente com email/senha de ADMIN_EMAIL / ADMIN_INITIAL_PASSWORD. Faca login e troque a senha imediatamente em /configuracoes.
IMPORTANTE: apos primeiro login, REMOVA ADMIN_INITIAL_PASSWORD do .env para evitar recriar admin acidentalmente.
npm run build
NODE_ENV=production npm start
Para deploy completo, ver DEPLOY.md.
POST /api/auth/login — credentials, devolve access + refreshPOST /api/auth/refresh — rotaciona refreshPOST /api/auth/logout — revoga refreshGET /api/auth/me — info do usuario logadoPOST /api/auth/change-passwordPOST /api/patients — protegido (admin/professional)GET /api/patients — protegidoGET /api/patients/:id — protegidoPATCH /api/patients/:id — protegido (admin/professional)DELETE /api/patients/:id — protegido (admin/professional)POST /api/results — protegidoGET /api/results — protegidoGET /api/results/:id — protegidoDELETE /api/results/:id — protegido (admin/professional)POST /api/consents — registra consentimento (com IP/UA/timestamp)GET /api/consents — lista consentimentos do usuarioPOST /api/lgpd/export-request — solicita exportacao art. 18POST /api/lgpd/delete-request — solicita exclusao art. 18POST /api/send-report — envia relatorio via SMTP (rate-limited)Para questoes tecnicas: abra issue no repositorio. Para questoes clinicas: contato direto com Dr. Jadson Fraga.
Conteudo educativo e de apoio clinico. Nao substitui consulta medica.
© 2026 Dr. Jadson Fraga Araujo Junior. Todos os direitos reservados.