Skip to content

Elisabete-MO/kotlin-to-do-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📔 Boas-vindas ao repositório do projeto To Do List! ☑️

API Rest para gerenciamento de tarefas

Descrição do Projeto

Essa é uma aplicação que gerencia tarefas, onde, através de uma API Rest, é possível criar, editar, excluir e listar tarefas.

📑 O usuário será capaz de:

  • Fazer login;
  • Adicionar, remover e editar uma tarefa;
  • Marcar e desmarcar uma tarefa como concluída;
  • Adicionar, remover e editar uma categoria;
  • Visualizar uma lista com as tarefas cadastradas;
  • Filtrar as tarefas por status, categoria ou data de criação;

Objetivo:

⚠️ Projeto em desenvolvimento 🚧

O principal propósito deste projeto é aplicar os padrões de projeto MVC em uma aplicação Kotlin e Spring Boot com frontend desenvolvido em Angular. A intenção é criar uma API Rest totalmente documentada com o auxílio do Swagger e testá-la usando JUnit e Mockito. A API será responsável por gerenciar as tarefas de um usuário, integrando o sistema com um banco de dados relacional em memória sem esquecer de aplicar os conceitos de boas práticas em desenvolvimento de software no atendimento aos seguintes requisitos:

📝 Requisitos

  • Desenhar o diagrama de classes da aplicação com Mermaid;
Diagrama de Classes O diagrama de classes abaixo ilustra a estrutura do projeto, destacando as principais entidades e suas relações. Ele fornece uma visão geral da arquitetura do sistema e como as classes interagem umas com as outras. Neste diagrama, é possível observar as principais classes envolvidas no projeto incluindo `User` e `Task`. A relação entre essas classes é representada pelas setas, indicando como elas se conectam. Este diagrama serve como um guia visual útil para entender a estrutura do sistema e as classes envolvidas nas operações.
classDiagram
class Task { 
    +id: string
    +date: date
    +title: string
    +description: string
    +status: Status
    +userId: number
    +save(task: Task) void
    +update(task: Task) Task
    +delete(id: number) void
    +findAll() List~Task~
    +findTaskByUserId(userId: number) List~Task~
}

class User {
    +id: number
    +username: string
    +email: string
    -password: string
    -image_url: string
    +save(user: User): void
    +update(user: User): User
    +delete(id: number): void
    +findAll(): List~User~
    +findByUsername(username: string): User 
    }

class Status { 
    <<enumeration>>
    OPEN
    IN_PROGRESS
    DONE 
    }
  		
  User "1" *-- "n" Task
  Task "1" -- "1" Status
Loading
  • Desenvolver a API em Kotlin e Spring;
  • Documentar a API com o Swagger;
  • Estruturar as classes no banco de dados;
    • Classe User;
    • Classe Task;
    • Criar as relações entre as tabelas;
    • Criar as queries para inserir os dados;
    • Criar a query para consultar as tarefas por id de usuário;
    • Criar a query para consultar tarefas por status;
    • Criar a query para consultar tarefas por categoria;
    • Criar a query para consultar tarefas por data de criação;
    • Criar as queries para deletar os dados;
    • Criar as queries para atualizar os dados;
    • Introduzir o processo de versionamento de banco de dados via FlyWay;
  • Introduzir processo de autenticação de usuários com o Spring Security;
  • Desenvolver o frontend em Angular;
  • Fazer o deploy da aplicação no Railway.
🚨 Todos esses conhecimentos foram adquiridos e/ou aprimorados durante o Code Update TQI - Backend com Kotlin e Java, promovido pela Digital Innovation One.

📝 Instruções de Uso

✔️ No Terminal/Console:

ℹ️ Visando facilitar a demostração da aplicação, recomendo a execução do projeto através da IDE do IntelliJ IDEA.
  1. Faça um clone do projeto na sua máquina: git clone git@github.com:Elisabete-MO/kotlin-to-do-list.git
  2. Abra o projeto no IntelliJ IDEA;
  3. Entre na pasta raiz do projeto: cd
  4. Execute o comando: mvn install
  5. Execute o comando: mvn spring-boot:run
  6. Abra o navegador e digite: http://localhost:8080/swagger-ui.html
  7. Para acessar o banco de dados, digite: http://localhost:8080/h2-console
📆 Histórico

Esse projeto foi desenvolvido primeiramente em HTML, CSS e javascript para atender aos requisitos de avaliação do módulo de front-end do curso de desenvolvimento web da Trybe. Agora, venho aplicar os conhecimentos adquiridos em Kotlin e Spring Boot para desenvolver uma API e, posteriormente, irei utilizar o Angular para remodelar o front-end.