尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證PWA de neuropediatria - Dr. Jadson Fraga
翻譯準備中
取自儲存庫 README
正在載入完整 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 bash cd "NeuroPed Escalas de Neuropedia" npm install bash cp .env.exampl檢視完整 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.