- Descrição do Projeto
- Tecnologias Utilizadas
- Estrutura do Projeto
- Rotas da API
- Como o Projeto Foi Criado
- Detalhes de Implementação
- Como Executar o Projeto
Este projeto Ă© um CRUD (Create, Read, Update, Delete) para gerenciamento de tarefas. Ele permite que os usuários criem, visualizem, atualizem e excluam tarefas. O projeto foi desenvolvido utilizando Node.js, Express, Prisma e um banco de dados SQLite. A interface do usuário Ă© construĂda com HTML, CSS e JavaScript.
- Node.js: Ambiente de execução para JavaScript no lado do servidor.
- Express: Framework para criação de APIs RESTful.
- Prisma: ORM (Object-Relational Mapping) para interação com o banco de dados.
- SQLite: Banco de dados leve e embutido.
- HTML5: Estrutura da interface.
- CSS3: Estilização da interface.
- JavaScript (ES6+): Lógica do cliente e manipulação do DOM.
- Toastify.js: Biblioteca para notificações visuais.
- Nodemon: Monitoramento de alterações no código durante o desenvolvimento.
- UUID: Geração de identificadores únicos para as tarefas.
CRUD_para-hosp/
├── bin/
│ └── www # Arquivo de inicialização do servidor
├── controllers/
│ └── tasks/ # Controladores das rotas de tarefas
├── models/
│ └── tasks/ # Lógica de interação com o banco de dados
├── prisma/
│ └── schema.prisma # Definição do banco de dados
├── public/
│ ├── html/ # Arquivos HTML
│ ├── javascripts/ # Scripts JavaScript do frontend
│ └── stylesheets/ # Arquivos CSS
├── routes/
│ └── tasks.js # Rotas relacionadas às tarefas
├── app.js # Configuração principal do aplicativo
├── package.json # Dependências e scripts do projeto
└── .gitignore # Arquivos ignorados pelo Git
Método | Rota | Descrição | Corpo da Requisição (JSON) |
---|---|---|---|
GET | /task/list |
Retorna todas as tarefas. | - |
POST | /task/add |
Adiciona uma nova tarefa. | { "title": "TĂtulo", "description": "Descrição" } |
DELETE | /task/delete/:id |
Exclui uma tarefa pelo ID. | - |
PATCH | /task/update |
Atualiza uma tarefa existente. | { "id": "ID", "title": "TĂtulo", "description": "Descrição" } |
-
Inicialização do Projeto
mkdir CRUD_para-hosp cd CRUD_para-hosp npm init -y
-
Instalação das Dependências
npm install express prisma @prisma/client cookie-parser debug http-errors morgan uuid npm install --save-dev nodemon
-
Configuração do Prisma
- Inicialize o Prisma:
npx prisma init
- Configure o arquivo schema.prisma para usar SQLite:
datasource db { provider = "sqlite" url = "file:./dev.db" } model Task { id Int @id @default(autoincrement()) publicId String @unique title String description String createdAt DateTime @default(now()) }
- Gere o cliente Prisma:
npx prisma generate
- Inicialize o Prisma:
-
Estruturação do Projeto
- Criação das pastas e arquivos conforme a estrutura descrita acima.
-
Configuração do Servidor
- O arquivo www foi configurado para inicializar o servidor na porta 3000.
-
Desenvolvimento das Funcionalidades
- Implementação das rotas, controladores e modelos para cada operação do CRUD.
- O banco de dados utilizado Ă© o SQLite, configurado no arquivo schema.prisma.
- O modelo
Task
contém os seguintes campos:id
: Identificador Ăşnico (autoincrementado).publicId
: Identificador pĂşblico (UUID).title
: TĂtulo da tarefa.description
: Descrição da tarefa.createdAt
: Data de criação.
- A interface do usuário Ă© construĂda com HTML e estilizada com CSS.
- O JavaScript no frontend é responsável por:
- Exibir as tarefas (
displayTasks.js
). - Adicionar novas tarefas (
addTask.js
). - Atualizar tarefas (
updateTask.js
). - Excluir tarefas (
deleteTask.js
).
- Exibir as tarefas (
- A validação dos campos de entrada é feita tanto no frontend (
validatorInputTask.js
) quanto no backend.
-
Clone o RepositĂłrio
git clone <URL_DO_REPOSITORIO> cd CRUD_para-hosp
-
Instale as DependĂŞncias
npm install
-
Configure o Banco de Dados
- Execute as migrações do Prisma:
npx prisma migrate dev --name init
- Execute as migrações do Prisma:
-
Inicie o Servidor
- Modo de produção:
npm start
- Modo de desenvolvimento:
npm run dev
- Modo de produção:
-
Acesse a Aplicação
- Abra o navegador e acesse: http://localhost:3000
Este projeto é um exemplo funcional de um CRUD para gerenciamento de tarefas, utilizando tecnologias modernas e boas práticas de desenvolvimento. Ele pode ser expandido para incluir autenticação, paginação, filtros e outras funcionalidades conforme necessário.