Clone.da.plataforma.Reddit.-.Breadit.Next.js.14.mp4
Breadit é um projeto funcional que consiste em um clone da plataforma Reddit. Desenvolvido utilizando Next.js 14, NextAuth para autenticação, Prisma ORM para interação com o banco de dados, Tailwind CSS para estilização, Next Theme para alternância de temas, Shadcn UI para componentes, e outras tecnologias modernas.
-
Autenticação Segura: Utiliza NextAuth para autenticação, proporcionando um sistema de login seguro.
-
Temas Personalizáveis: Oferece suporte a temas claro e escuro para aprimorar a experiência do usuário.
-
Gestão de Subreddits: Permite a criação, edição e exclusão de subreddits.
-
Sistema de Votos: Possui um sistema de votação para posts e comentários.
-
Upload de Imagens: Utiliza o UploadThing para facilitar o upload de imagens na nuvem.
-
Editor de Texto: Integra o EditorJS para criação de publicações com formatação rica.
-
Validações Eficientes: Utiliza React Hook Form com Zod para validações eficientes nos formulários.
-
React Dropzone e Lucide-React: Facilita a manipulação de uploads e utiliza ícones de Lucide-React.
-
Cache com Redis: Implementa o Redis para fazer o cache de determinadas requisições, aprimorando a eficiência do sistema.
-
Clone este repositório para sua máquina local
-
Acesse o diretório do projeto:
cd breadit
-
Instale as dependências:
npm install
-
Configure as variáveis de ambiente no arquivo
.env
:DATABASE_URL= NEXTAUTH_SECRET= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= UPLOADTHING_SECRET= UPLOADTHING_APP_ID= REDIS_URL= REDIS_SECRET=
-
Execute as migrações do Prisma:
npx prisma migrate dev npx prisma generate
-
Inicie o servidor de desenvolvimento:
npm run dev
-
Acesse o aplicativo em seu navegador em http://localhost:3000.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests para melhorar este projeto.
Obrigado por explorar o Breadit! Espero que este clone funcional do Reddit seja útil para seus estudos e práticas.
Este projeto está disponível sob a MIT License. Consulte o arquivo LICENSE para obter mais detalhes.