- Escrever código limpo e bem documentado
- Seguir padrões de nomenclatura consistentes
- Implementar validação de dados em todas as entradas
- Proteger rotas sensíveis com autenticação
- Tratar erros adequadamente
- Fazer commits frequentes com mensagens descritivas
- escreva os testes jest
- Ultilize git semantico
LINK_GIT_SEMANTICO: https://andra-sun.github.io/posts/commit-semantico/
NewBook é uma aplicação web que permite aos usuários gerenciar sua biblioteca pessoal de livros. Os usuários podem criar uma conta, adicionar livros à sua coleção, marcar livros como lidos ou não lidos, e gerenciar suas informações pessoais.
- Utilizar Node.js para o backend
- Criar uma API RESTful
- Implementar autenticação de usuários (login/registro)
- Armazenar dados em um banco de dados (MongoDB, PostgreSQL ou MySQL)
- Implementar validação de dados
- Criar interface de usuário responsiva
- Criar schemas e interfaces
- Usar TypeScript ao invés de JavaScript puro (recomendado para melhor tipagem)
- Implementar Docker para containerização da aplicação
- Adicionar testes automatizados (Jest, Mocha, etc.)
- Implementar CI/CD testes automatizados
newbook/
├── frontend/ # Frontend da aplicação
│ ├── public/ # Arquivos estáticos
│ └── src/ # Código fonte do frontend
├── backend/ # Backend da aplicação
│ ├── controllers/ # Controladores da API
│ ├── models/ # Modelos de dados
│ ├── routes/ # Rotas da API
│ └── middleware/ # Middlewares da aplicação
├── docker/ # Arquivos de configuração Docker (opcional)
└── README.md # Documentação do projeto
- Registro de usuário: Nome, email, senha (com confirmação)
- Login: Autenticação via email/senha
- Perfil: Edição de informações pessoais
- Níveis de acesso: Usuário comum e Administrador
- Cadastro de livros: Cada usuário pode adicionar seus próprios livros
- Informações do livro:
- Título (obrigatório)
- Autor (obrigatório)
- Gênero (obrigatório)
- Descrição
- Status de leitura (lido/não lido)
- Imagem de capa (upload ou URL) (obrigatorio)
- Data de adição
- Avaliação pessoal (1-5 estrelas)
- Notas pessoais
- Operações CRUD: Criar, ler, atualizar e deletar livros
- Filtros e busca: Buscar por título, autor, gênero, status de leitura
- Gerenciamento de usuários: Ver, editar e excluir contas
- Estatísticas: Visualizar dados sobre usuários e livros cadastrados
- Moderação: Capacidade de remover conteúdo inadequado
- Node.js com Express
- JWT para autenticação
- prisma
- Multer para upload de arquivos
- React.js ou Vue.js
- CSS: Tailwind CSS ou Bootstrap
- Axios para requisições HTTP
- Docker e Docker Compose
- GitHub Actions para CI/CD
-
Configuração do ambiente:
- Instalar Node.js e npm
- Configurar editor de código (VSCode recomendado)
- Instalar MongoDB ou outro banco de dados
-
Iniciar o projeto:
- Criar estrutura de pastas
- Inicializar package.json
- Instalar dependências básicas
-
Desenvolver o backend:
- Criar modelos de dados (User, Book)
- Implementar rotas da API
- Configurar autenticação
-
Desenvolver o frontend:
- Criar componentes de interface
- Implementar formulários de cadastro e login
- Desenvolver páginas de listagem e detalhes de livros
-
Testar a aplicação:
- Testar funcionalidades básicas
- Verificar responsividade
- Corrigir bugs encontrados
-
Deploy (opcional):
- Preparar aplicação para produção
- Fazer deploy em serviço de hospedagem (Heroku, Vercel, etc.)