smooth-app
전 세계 식품의 성분·영양·정보를 자유롭게 협업하고 공개하는 데이터베이스
데이터 기반 보충제 순위: SupleScore 지표가 품질·가성비·구성을 비교해 안전하게 선택하도록 돕습니다
Rankings independentes de suplementos baseados em dados: o Índice SupleScore compara qualidade, custo-benefício e composição para você decidir com segurança.
건강TypeScript · CSSGitHub @Schmidelbelo온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기SupleCheck - plataforma de comparação e decisão de compra de suplementos.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Plataforma de comparação inteligente de suplementos. Ver ARCHITECTURE.md para a arquitetura completa e o raciocínio por trás das decisões estruturais, e docs/DEPLOY.md para o processo de deploy em produção. Banco de dados: PostgreSQL (Neon) tanto em desenvolvimento quanto em produção — não há mais banco local em arquivo. É necessário ter um projeto Neon (ou outro Postgres acessível) antes do primeiro npm run dev.README 전문 보기 ↗
Plataforma de comparação inteligente de suplementos. Ver ARCHITECTURE.md para a arquitetura completa e o raciocínio por trás das decisões estruturais, e docs/DEPLOY.md para o processo de deploy em produção.
Next.js 15 (App Router) · TypeScript · PostgreSQL (Neon) · Prisma · Zod · Radix UI · Tailwind CSS v4 · Sentry
Banco de dados: PostgreSQL (Neon) tanto em desenvolvimento quanto em produção — não há mais banco local em arquivo. É necessário ter um projeto Neon (ou outro Postgres acessível) antes do primeiro npm run dev.
npm install
cp .env.example .env # preencha DATABASE_URL, DIRECT_URL e ADMIN_API_KEY
npm run db:generate
npm run db:migrate # aplica as migrations no banco apontado por DATABASE_URL/DIRECT_URL
npm run db:seed # popula categorias/marcas/fabricantes/10 creatinas avaliadas — opcional, mas necessário para ver dados reais em /creatina
npm run dev
ADMIN_API_KEY é obrigatória para qualquer escrita na API (POST/PUT/PATCH/DELETE em /api/catalog/* e /api/evaluation/*, ver src/middleware.ts) — gere um valor com node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" e envie como header x-api-key nas requisições administrativas.
| Script | Descrição |
|---|---|
npm run dev | Ambiente de desenvolvimento |
npm run build | Build de produção |
npm run start | Sobe o build de produção localmente |
npm run lint | ESLint |
npm run format | Formata o projeto com Prettier |
npm run typecheck | Checagem de tipos sem build |
npm test | Testes (Vitest) — integração/repository/API contra o Postgres real de DATABASE_URL |
npm run db:generate | Gera o Prisma Client |
npm run db:push | Sincroniza o schema com o banco sem gerar migration (dev only) |
npm run db:migrate | Cria/aplica migrations em desenvolvimento |
npm run db:studio | Abre o Prisma Studio |
npm run db:seed | Roda o seed oficial (categorias/marcas/fabricantes/10 creatinas avaliadas/ranking) — idempotente |
Em produção, migrations são aplicadas com npx prisma migrate deploy (nunca migrate dev), ver docs/DEPLOY.md.
Ver ARCHITECTURE.md §3–§13 para a estrutura de pastas, módulos de domínio, design system e estratégias de SEO/performance/escalabilidade.
Não há login de usuário nesta fase (Beta Público) — o catálogo é gerenciado internamente via uma única API Key (ADMIN_API_KEY), checada no src/middleware.ts para toda escrita em /api/catalog/* e /api/evaluation/*. /api/leads e /api/contact permanecem públicos (captura de lead/contato, por design). Sem a env configurada, toda escrita responde 500; com a env configurada, falta do header x-api-key responde 401, chave incorreta responde 403.