Skip to content

Repository files navigation

Fanmon Pokédex

Aplicação Next.js para administrar e consultar uma Pokédex personalizada. Inclui backend com Prisma/SQLite, autenticação via NextAuth e painel administrativo para CRUD de gerações, tipos e Pokémon.

Destaques

  • Painel administrativo protegido (roles ADMIN/EDITOR).
  • CRUD para gerações, tipos (relacionamentos: forte, fraco, imune) e Pokémon.
  • Upload local de imagem/áudio (armazenados em public/uploads).
  • Validação com Zod e ORM Prisma (SQLite).

Pré-requisitos

  • Node.js 20+
  • Banco SQLite (arquivo) acessível no projeto
  • Variáveis de ambiente configuradas (veja docs/environment.md)

Instalação (desenvolvimento)

  1. Clone o repositório:
    git clone https://github.com/icidade/fanmon-pokedex.git
    cd fanmon-pokedex
  2. Instale dependências:
    npm install
  3. Crie .env.local seguindo docs/environment.md. Um exemplo de DATABASE_URL para SQLite:
    DATABASE_URL="file:./dev.db"
  4. Execute migrações:
    npx prisma migrate deploy
    (ou npx prisma migrate dev em ambiente local para gerar migrações)
  5. Inicie em modo de desenvolvimento:
    npm run dev
    A aplicação ficará disponível em http://localhost:3000

Scripts úteis

  • npm run dev — servidor de desenvolvimento
  • npm run build — build de produção
  • npm run start — inicia a build em produção
  • npm run lint — executa ESLint
  • npx prisma studio — inspecionar dados localmente

Painel administrativo

  • URL: /dashboard
  • A tela de login está em /login (provider de credenciais do NextAuth).
  • Permissões: usuários com papel ADMIN ou EDITOR podem acessar o painel.
  • Funcionalidades:
    • CRUD de gerações.
    • CRUD de tipos com gerenciamento de relações (forte, fraco, imune).
    • CRUD de Pokémon: campos principais, estatísticas base e upload local de imagem/áudio.

Estrutura do projeto

  • src/app/api — rotas REST autenticadas (gerações, tipos, Pokémon e autenticação).
  • src/app/dashboard — páginas do painel administrativo.
  • src/lib — Prisma Client, autenticação, validações Zod e utilitários.
  • src/components — formulários e componentes reutilizáveis.
  • prisma/schema.prisma — definição do banco de dados.

Variáveis de ambiente

Consulte docs/environment.md para a lista completa. As principais:

  • DATABASE_URL — conexão (ex.: file:./dev.db para SQLite)
  • NEXTAUTH_URL — URL da aplicação (ex.: http://localhost:3000)
  • NEXTAUTH_SECRET — segredo do NextAuth
  • (outros conforme docs/environment.md)

Banco de dados e seed

  • Migrações: npx prisma migrate deploy
  • Para popular dados de teste (se houver script de seed): execute o script de seed documentado no projeto ou use npx prisma db seed se configurado.

Contribuição

  1. Abra uma issue descrevendo a proposta ou bug.
  2. Faça um fork e crie uma branch com o prefixo feature/ ou fix/.
  3. Faça commits claros e um PR para main.
  4. Respeite as regras de lint e formato do projeto.

Licença

MIT License

Copyright (c) 2025 Irlan Cidade

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Disclaimer

This is a fan-made project created for educational and non-commercial purposes.
Pokémon and all related names, images, and assets are trademarks and copyrights of
Nintendo, Game Freak, and The Pokémon Company.

This project is not affiliated with, endorsed, or sponsored by these entities.
All Pokémon-related intellectual property belongs to their respective owners.

Contato

Para dúvidas ou integração: icidade (no GitHub) — https://github.com/icidade

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages