CatNews é uma aplicação web construída com Node.js, Express e Next.js, que fornece notícias relacionadas a gatos, dicas de cuidados e uma plataforma para usuários contribuírem com informações de clínicas veterinárias locais. 🐱
- Descrição
- Funcionalidades
- Tecnologias
- Instalação
- Uso
- Estrutura do Projeto
- Referência da API
- Contribuindo
- Licença
- Links Importantes
- Rodapé
O CatNews tem como objetivo ser um recurso completo para tutores e entusiastas de gatos. Ele oferece artigos sobre cuidados, curiosidades e um diretório de clínicas veterinárias locais. Usuários podem se cadastrar, fazer login e enviar informações de clínicas para expandir o diretório. O backend, construído com Node.js e Express, fornece endpoints de API para autenticação de usuários, envio de clínicas e recuperação de dados. O frontend utiliza HTML, CSS, JavaScript e Bootstrap para criar uma interface amigável. 📰
- Autenticação de Usuários: Cadastro e login seguros usando bcrypt e JWT. 🔑
- Envio de Clínicas: Usuários autenticados podem enviar informações de clínicas veterinárias, incluindo nome, endereço, horário e médico responsável. 🏥
- Diretório de Clínicas: Navegue por um diretório de clínicas veterinárias com detalhes como endereço, horários e contatos. 🐾
- Gerenciamento de Perfil: Usuários podem gerenciar informações do perfil e fazer upload de uma imagem. 👤
- Conteúdo Informativo: Acesse artigos sobre cuidados com gatos, prevenção e curiosidades. 📚
-
Backend:
- Node.js
- Express
- Prisma (ORM)
- SQLite
- bcrypt
- jsonwebtoken
- Nodemailer
- Multer
- Zod
-
Frontend:
- HTML
- CSS
- JavaScript
- Bootstrap
- Next.js (provavelmente usado em partes da UI, não como framework completo)
-
Clone o repositório:
git clone https://github.com/imLaeL/CatNews cd CatNews -
Instale as dependências:
npm install
-
Configure as variáveis de ambiente:
-
Crie um arquivo
.envbaseado no.env-example. -
Configure as seguintes variáveis:
EMAIL_HOSTEMAIL_PORTEMAIL_SECUREEMAIL_USEREMAIL_PASSJWT_SECRETSALT_ROUNDS
-
-
Configure o banco de dados:
npx prisma migrate dev npx prisma db seed
-
Inicie o servidor de desenvolvimento:
npm run dev
O servidor será iniciado em
http://localhost:3000. -
Acesse a aplicação:
Abra o navegador e vá para
http://localhost:3000para visualizar o site CatNews.
Caso de Uso Real
Imagine que você é um novo tutor de gato procurando dicas e recursos locais. O CatNews oferece orientações essenciais de cuidados, curiosidades divertidas e um diretório colaborativo de clínicas veterinárias próximas. Você também pode contribuir adicionando uma clínica que ainda não esteja listada, ajudando outros tutores da sua comunidade. 🏘️
CatNews/
├── public/
│ ├── cuidados/
│ ├── curiosidades/
│ ├── img/
│ ├── index.html
│ ├── login/
│ ├── prevencoes-castracao/
│ └── style.css
├── src/
│ ├── config/
│ ├── database/
│ ├── middleware/
│ ├── model/
│ ├── routes.js
│ ├── services/
│ └── index.js
├── prisma/
│ ├── migrations/
│ ├── schema.prisma
│ └── seed.js
├── .env
├── package.json
└── README.md
Diretórios e arquivos principais:
-
public/: Contém os arquivos estáticos como HTML, CSS, JS e imagens. -
src/: Contém o código backend, incluindo:config/: Arquivos de configuração (e.g., email, multer).database/: Configuração do banco de dados.middleware/: Funções de autenticação e validação.model/: Modelos de dados.routes.js: Define as rotas da API.services/: Funções utilitárias (e.g., envio de email).index.js: Ponto de entrada do backend.
-
prisma/: Contém schema e migrações do Prisma. -
package.json: Dependências e scripts do projeto.
O backend fornece os seguintes endpoints:
-
GET /clinicas-submetidas: Lista clínicas enviadas (autenticação necessária). -
POST /clinicas-submetidas: Adiciona uma nova clínica (autenticação necessária).- Requer JSON com
clinic,addressemedic.
- Requer JSON com
-
PUT /clinicas-submetidas/:id: Atualiza uma clínica (autenticação necessária). -
DELETE /clinicas-submetidas/:id: Remove uma clínica (autenticação necessária). -
GET /enderecos: Lista endereços de clínicas. -
GET /medicos: Lista médicos. -
POST /users: Registra um novo usuário.- Requer JSON com
username,email,password,confirmationPassword.
- Requer JSON com
-
POST /signin: Login de usuário existente.- Requer JSON com
emailepassword.
- Requer JSON com
-
GET /users/me: Retorna o perfil do usuário autenticado. -
POST /users/image: Upload de imagem de perfil (autenticação necessária). -
PUT /users/image: Atualiza imagem de perfil (autenticação necessária). -
POST /clinics/image: Upload de imagem de clínica (autenticação necessária).
Contribuições são bem-vindas! 🎉 Para contribuir:
- Faça um fork do repositório.
- Crie uma branch para sua feature ou correção.
- Realize as alterações e faça commits descritivos.
- Envie para seu fork.
- Abra um pull request.
Este projeto está sob a Licença ISC. Veja o arquivo LICENSE para detalhes.
- Repositório: https://github.com/imLaeL/CatNews
- Repositório: CatNews
- Autores: Isaque Lael, Shannon Brunna, Kayck Jesse, Janaína Vitória
- Contato: Abra uma issue para dúvidas e feedback. 💬
⭐️ Dê uma estrela e contribua para tornar o mundo dos amantes de gatos ainda melhor!