Skip to content

🚀 CRUD de Tarefas com Node.js | 🔗 API RESTful com Express + Prisma + SQLite 🗂️ Organizado em arquitetura MVC, fácil de entender e escalar! 👉 Confira o repositório e veja como implementei um backend limpo e funcional!

Notifications You must be signed in to change notification settings

andreluizdasilvaa/CRUD-Express-MVC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ĂŤndice

  1. Descrição do Projeto
  2. Tecnologias Utilizadas
  3. Estrutura do Projeto
  4. Rotas da API
  5. Como o Projeto Foi Criado
  6. Detalhes de Implementação
  7. Como Executar o Projeto

Descrição do 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.


Tecnologias Utilizadas

Backend

  • 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.

Frontend

  • 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.

Ferramentas de Desenvolvimento

  • Nodemon: Monitoramento de alterações no cĂłdigo durante o desenvolvimento.
  • UUID: Geração de identificadores Ăşnicos para as tarefas.

Estrutura do Projeto

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

Rotas da API

Tarefas

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" }

Como o Projeto Foi Criado

  1. Inicialização do Projeto

    mkdir CRUD_para-hosp
    cd CRUD_para-hosp
    npm init -y
  2. Instalação das Dependências

    npm install express prisma @prisma/client cookie-parser debug http-errors morgan uuid
    npm install --save-dev nodemon
  3. 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
  4. Estruturação do Projeto

    • Criação das pastas e arquivos conforme a estrutura descrita acima.
  5. Configuração do Servidor

    • O arquivo www foi configurado para inicializar o servidor na porta 3000.
  6. Desenvolvimento das Funcionalidades

    • Implementação das rotas, controladores e modelos para cada operação do CRUD.

Detalhes de Implementação

Banco de Dados

  • 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.

Frontend

  • 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).

Validação

  • A validação dos campos de entrada Ă© feita tanto no frontend (validatorInputTask.js) quanto no backend.

Como Executar o Projeto

  1. Clone o RepositĂłrio

    git clone <URL_DO_REPOSITORIO>
    cd CRUD_para-hosp
  2. Instale as DependĂŞncias

    npm install
  3. Configure o Banco de Dados

    • Execute as migrações do Prisma:
      npx prisma migrate dev --name init
  4. Inicie o Servidor

    • Modo de produção:
      npm start
    • Modo de desenvolvimento:
      npm run dev
  5. Acesse a Aplicação


ConclusĂŁo

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.

About

🚀 CRUD de Tarefas com Node.js | 🔗 API RESTful com Express + Prisma + SQLite 🗂️ Organizado em arquitetura MVC, fácil de entender e escalar! 👉 Confira o repositório e veja como implementei um backend limpo e funcional!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published