Este projeto é uma aplicação fullstack que simula um dicionário online com funcionalidades de autenticação, histórico de palavras visualizadas, favoritos e busca de definições.
Foi desenvolvido seguindo as melhores práticas de Clean Code, SOLID, e separação clara entre frontend e backend.
- Node.js
- Fastify
- Prisma ORM
- SQLite
- SOLID Principles + Clean Architecture
- OpenAPI 3.0 (Swagger)
- Next.js 15 (App Router)
- Tailwind CSS
- Shadcn UI
- React Hook Form
- Zod
- Axios
- TanStack Query (React Query)
- SSR (opcional)
- URL compartilhável com parâmetros (diferencial)
.
├── server/ # API RESTful com Fastify + Prisma
└── web/ # Aplicação Next.js
O projeto encontra-se feito deploy na URL: https://dictionary.jonventura.dev
- Node.js (versão 20 ou superior)
- SQLite (opcional, o Prisma cria o banco automaticamente)
- PNPM ou Yarn (opcional, o projeto usa o pnpm como gerenciador de pacotes)
-
Clone o repositório:
git clone https://github.com/JonGlazkov/fullstack-dictionary.git cd fullstack-dictionary/server -
Instale as dependências:
pnpm install
-
Configure o banco de dados no arquivo
.env(opcional) e o JWT_SECRET(obrigatório):DATABASE_URL="file:./dev.db" JWT_SECRET=seu-segredo-aqui -
Execute as migrações do Prisma:
npx prisma migrate dev ou pnpm prisma migrate dev
-
Inicie o servidor:
pnpm dev
-
Acesse a documentação da API em
http://localhost:3333/docs(Swagger).Observação: Caso precise popular o banco com as palavras em inglês, execute o comando abaixo dentro da pasta
server:pnpm populate
-
Clone o repositório caso ainda não tenha feito:
git clone https://github.com/JonGlazkov/fullstack-dictionary.git cd fullstack-dictionary/web -
Instale as dependências:
pnpm install
-
Configure a URL da API no arquivo
.env:NEXT_PUBLIC_API_URL=http://localhost:3333
-
Gere o AUTH_SECRET no arquivo
.env(obrigatório):pnpm dlx auth@latest secret
-
Inicie o servidor:
pnpm dev
-
Acesse a aplicação em
http://localhost:3000.