Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diegoporfirio01/chat
Pages Marketing SEO Friendly / Chat Realtime / Open API (SWAGGER)
https://github.com/diegoporfirio01/chat
fastify i18next kafka-consumer mobile-first next15 postgresql redis seo-friendly seo-optimization server-actions swagger-api
Last synced: 15 days ago
JSON representation
Pages Marketing SEO Friendly / Chat Realtime / Open API (SWAGGER)
- Host: GitHub
- URL: https://github.com/diegoporfirio01/chat
- Owner: DiegoPorfirio01
- Created: 2024-08-30T19:08:54.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-09-22T13:17:07.000Z (about 2 months ago)
- Last Synced: 2024-10-10T17:43:37.410Z (about 1 month ago)
- Topics: fastify, i18next, kafka-consumer, mobile-first, next15, postgresql, redis, seo-friendly, seo-optimization, server-actions, swagger-api
- Language: TypeScript
- Homepage: https://chat-lucy.vercel.app
- Size: 294 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Lucy - Chat em Tempo Real
**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](https://chat-0kc1.onrender.com/docs)
## 🚀 Tecnologias Utilizadas
Aqui estão as principais ferramentas e bibliotecas que fazem o Lucy funcionar:
- **Framework**: [Next.js 15](https://nextjs.org/) (com utilização de server actions)
- **Frontend**:
- [React](https://reactjs.org/) 19 (versão experimental)
- [Prisma ORM](https://www.prisma.io/)
- [Radix UI](https://radix-ui.com/)
- [Tailwind CSS](https://tailwindcss.com/)
- [GSAP](https://greensock.com/gsap)
- [Ky](https://github.com/sindresorhus/ky)- **Backend**:
- [Fastify 4.2](https://www.fastify.io/)
- [Socket.IO](https://socket.io/)- **Documentação e UI da API**:
- [Swagger 8](https://swagger.io/)
- **Outras Dependências**:
- [Next Intl](https://next-intl.dev/)
- [Zod](https://zod.dev/)## 🌟 Funcionalidades
- **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.## 💻 Como Rodar o Projeto
Para rodar o projeto localmente, siga estes passos:
1. **Instale as dependências:**
```bash
pnpm install
```2. **DevOPS:**
rodar banco postgre e o redis:```bash
docker-compose up -d
```3. **Configure as variáveis de ambiente:**
```bash
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/getstarted5. **Gerar schema Prisma:**
```bash
pnpm run db:schema
```6. **Inicie o servidor de desenvolvimento:** Na raiz do projeto, execute:
```bash
pnpm run dev
```7. **Visualize a documentação da API:** Abra o navegador e acesse [http://localhost:3333/docs](http://localhost:3333/docs) para explorar a documentação interativa gerada pelo Swagger.
8. **Acesse o sistema:** Abra o navegador e acesse [http://localhost:3000](http://localhost:3000) para usar a aplicação!
## 🛠️ Scripts
- **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.## Nota
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
## 📝 Licença
Este projeto está licenciado sob a Licença MIT.
## 🚀 Desafio Aceito!
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