Lucy é um aplicativo de chat em tempo real desenvolvido inicialmente em um desafio intenso de 3 dias. Explore a complexidade e inovação desta aplicação, que combina uma série de tecnologias modernas para oferecer uma experiência de usuário envolvente e eficiente!
Documentação OPEN API (SWAGGER) https://chat-0kc1.onrender.com/docs
Aqui estão as principais ferramentas e bibliotecas que fazem o Lucy funcionar:
-
Framework: Next.js 15 (com utilização de server actions)
-
Frontend:
- React 19 (versão experimental)
- Prisma ORM
- Radix UI
- Tailwind CSS
- GSAP
- Ky
-
Backend:
-
Documentação e UI da API:
-
Outras Dependências:
- Chat em Tempo Real: Comunicação instantânea entre usuários, proporcionada pelo Socket.IO.
- Interface Moderna: Design clean com componentes da Radix UI e estilos responsivos do Tailwind CSS.
- Formulários Eficientes: Gerenciados com React Hook Form e validados com Zod.
- Temas e Internacionalização: Suporte a temas com Next Themes e tradução com Next Intl.
- Cache e Performance: Uso de cache no frontend e Redis no backend para otimizar o desempenho.
Para rodar o projeto localmente, siga estes passos:
-
Instale as dependências:
pnpm install
-
DevOPS: rodar banco postgre e o redis:
docker-compose up -d
-
Configure as variáveis de ambiente:
cp .env.example .env
Validações estão implementadas para garantir que todas as variáveis estejam corretas.
OBS: - As variaveis relacionadas oa kafka, sugiro que utilize esse serviço para rodar o kafka : https://upstash.com/docs/kafka/overall/getstarted
-
Gerar schema Prisma:
pnpm run db:schema
-
Inicie o servidor de desenvolvimento: Na raiz do projeto, execute:
pnpm run dev
-
Visualize a documentação da API: Abra o navegador e acesse http://localhost:3333/docs para explorar a documentação interativa gerada pelo Swagger.
-
Acesse o sistema: Abra o navegador e acesse http://localhost:3000 para usar a aplicação!
- Desenvolvimento:
pnpm run dev
- Inicia o servidor de desenvolvimento. - Banco:
pnpm run db:migrate
- Cria schema e atualiza banco - Construir:
pnpm run build
- Gera a versão de produção. - Linter:
pnpm run lint
- Executa o linter para verificar o código.
Pode haveer erro no console em função do radix ainda não ter atualizado as referências dos componentes para o novo hook useRef
Este projeto está licenciado sob a Licença MIT.
Desenvolvido em apenas 3 dias como um grande desafio, o Lucy é um testemunho de paixão por novas tecnologias e criação de aplicações robustas. Espero que você aproveite tanto quanto eu gostei de desenvolvê-la!
Lucy - Chat em Tempo Real
Desenvolvido com café ☕ por Diego Vianna Porfírio