{"id":19358717,"url":"https://github.com/mathmendesreis/to-do-list-backend","last_synced_at":"2026-05-16T02:36:10.207Z","repository":{"id":157587211,"uuid":"629513956","full_name":"MathMendesReis/to-do-list-backend","owner":"MathMendesReis","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-19T15:06:01.000Z","size":95,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-06T18:37:21.825Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MathMendesReis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-18T13:17:58.000Z","updated_at":"2024-07-30T14:31:26.000Z","dependencies_parsed_at":"2024-07-30T19:28:51.537Z","dependency_job_id":null,"html_url":"https://github.com/MathMendesReis/to-do-list-backend","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathMendesReis%2Fto-do-list-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathMendesReis%2Fto-do-list-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathMendesReis%2Fto-do-list-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathMendesReis%2Fto-do-list-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MathMendesReis","download_url":"https://codeload.github.com/MathMendesReis/to-do-list-backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240474167,"owners_count":19807280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T07:12:51.227Z","updated_at":"2026-05-16T02:36:10.165Z","avatar_url":"https://github.com/MathMendesReis.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend da API de Gestão de Tarefas\nEste é o repositório do backend de uma API de gestão de tarefas desenvolvida em TypeScript. A API permite a criação de usuários, criação de tarefas e atribuição das tarefas aos usuários cadastrados. O projeto foi desenvolvido utilizando programação orientada a objetos (POO) e uma arquitetura em camadas para facilitar a organização e manutenção do código.\n\n## Tecnologias utilizadas\nO backend da API de gestão de tarefas foi desenvolvido utilizando as seguintes tecnologias e frameworks:\n\n### TypeScript\n* Uma linguagem de programação que adiciona recursos de tipagem estática ao JavaScript, fornecendo assim maior segurança e produtividade durante o desenvolvimento.\n\n### \n### Express: \n* Um framework web rápido e minimalista para Node.js, utilizado para construir a infraestrutura da API e tratar as requisições HTTP.\n\n### Cors: \n* Um middleware que permite requisições de origens diferentes na API, fornecendo mais segurança e controle sobre a comunicação entre o frontend e o backend.\n\n### Dotenv: \n* Uma biblioteca que carrega variáveis de ambiente a partir de um arquivo .env, permitindo configurar facilmente as informações sensíveis e personalizáveis do projeto.### Jsonwebtoken: \n* Uma biblioteca utilizada para gerar e verificar tokens de autenticação JWT (JSON Web Tokens), garantindo a segurança das rotas e autenticação dos usuários.\n\n### Knex: \n * Uma biblioteca SQL query builder para Node.js, utilizada para interagir com o banco de dados SQLite3 e realizar operações como criação, leitura, atualização e remoção de registros.\n\n### SQLite3: \n* Um banco de dados SQL embutido que armazena as informações da API de gestão de tarefas.\n\n### UUID: \n* Uma biblioteca utilizada para gerar identificadores únicos para os usuários e tarefas, garantindo a integridade e unicidade dos registros.\n\n### Zod: \n* Uma biblioteca de validação de esquemas utilizada para validar e normalizar os dados de entrada da API.\n\n# Funcionalidades\n## A API de gestão de tarefas possui as seguintes funcionalidades principais:\n\n* Cadastro de usuários: Permite a criação de novos usuários com nome, e-mail e senha.\n\n* Autenticação de usuários: Gera tokens de autenticação JWT para os usuários, permitindo a autorização e controle de acesso às rotas protegidas.\n\n* Criação de tarefas: Permite a criação de novas tarefas com título, descrição e data de vencimento.\n\n* Atribuição de tarefas: Possibilita a atribuição de tarefas aos usuários cadastrados, associando um usuário responsável a uma determinada tarefa.\n\n# Documentação\nA documentação da API de gestão de tarefas está disponível no [Postman](https://documenter.getpostman.com/view/24880324/2s93m1ZjBB), com informações detalhadas sobre as rotas, parâmetros e exemplos de requisições.\n\n# Importância e aprendizados\nO desenvolvimento deste projeto foi de extrema importância para aprimorar meus conhecimentos em programação orientada a objetos (POO), arquitetura em camadas e manipulação de bancos de dados com SQL. Além disso, pude explorar a utilização de tecnologias modernas e frameworks populares, contribuindo para expandir minhas habilidades como desenvolvedor backend.\n\nDurante o desenvolvimento, pude aplicar os princípios da programação orientada a objetos, o que me permitiu criar uma estrutura de código mais organizada e modular. A arquitetura em camadas também foi fundamental para separar as responsabilidades e facilitar a manutenção do projeto.\n\nManipular o banco de dados utilizando SQL e a biblioteca Knex foi uma experiência enriquecedora. Aprendi a criar consultas eficientes, gerenciar relacionamentos entre tabelas e garantir a integridade dos dados.\n\nA escolha de tecnologias modernas, como TypeScript e Express, permitiu desenvolver a API de forma mais segura, robusta e escalável. \n\n\nEstou satisfeito com os resultados alcançados neste projeto. Através dele, consegui solidificar meus conhecimentos em POO, aprimorar minhas habilidades em SQL e fortalecer minha compreensão de conceitos de arquitetura e boas práticas de desenvolvimento de APIs.\n\nO próximo passo será hospedar essa API na nuvem e criar um frontend para fornecer uma experiência completa aos usuários. Estou animado com as possibilidades e oportunidades que surgirão com a conclusão deste projeto.\n\n# Como Baixar e Testar Localmente\n\n1 - Clone o repositório executando o seguinte comando:\n\n``git clone https://github.com/seu-usuario/to-do-list-backend.git\nSubstitua \"seu-usuario\" pelo seu nome de usuário do GitHub.``\n\n2 - Após clonar o repositório, navegue até o diretório do projeto executando o seguinte comando:\n\n\n``cd to-do-list-backend``\n\n3 - Antes de executar o projeto, certifique-se de ter as dependências instaladas. No terminal, execute o seguinte comando para instalar as dependências listadas no arquivo package.json:\n\n``npm install\n``\n\nIsso irá baixar e instalar todas as dependências necessárias para executar o projeto.\n\n4 -Após a instalação das dependências, você precisará configurar as variáveis de ambiente. Renomeie o arquivo .env.example para .env e preencha as variáveis de acordo com suas configurações locais.\n\n``\nPORT = 3003\n\nDB_FILE_PATH = ./src/database/db.db\n\nJWT_KEY = minha_senha-segura_bananinha\nJWT_EXPIRES_IN=7D ``\n\n5 - Agora, você pode iniciar o servidor localmente executando o seguinte comando:\n\n\n``npm run dev\n``\n\nIsso iniciará o servidor e você poderá acessar a API localmente no endereço http://localhost:3003.\n\nCom o servidor em execução, você pode testar as rotas e funcionalidades da API utilizando o Postman ou qualquer outra ferramenta de cliente HTTP.\n\nConsulte a documentação para obter informações detalhadas sobre as rotas, parâmetros e exemplos de requisições.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathmendesreis%2Fto-do-list-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathmendesreis%2Fto-do-list-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathmendesreis%2Fto-do-list-backend/lists"}