- 🎒 Sobre o Projeto
- ⚙ Funcionalidades e Modelos
- 🛠 Tecnologias e Ferramentas
- 💻 Como Rodar Localmente
- 🎡 Exemplo de Uso
- 👤 Desenvolvedor
O ToDu System é um software desenvolvido para fixação dos meus conhecimentos em desenvolvimento de API's.
O sistema conta com suporte para manutenção de informações de Usuários e permite com que gerenciem suas Tarefas. Além disso, conta com Autenticação em Duas Etapas (entre outras medidas de segurança e criptografia de dados sensíveis) e com uma lógica de envio automatizado de e-mails para notificar os usuários sobre o prazo de suas tarefas e monitoração de seu estado. Um dos grandes diferenciais do sitema é lidar com qualquer fuso horário na manipulação das tarefas.
🌟Documentação Completa do Sistema
O sistema cumpre:
💡 O dicionário de dados, regras de negócio, etc, podem ser consultados na Documentação Completa
Tendo o sistema rodando localmente, acesse a Documentação da API com Swagger em :
http://localhost:<PORTA>/docs
-
NodeJs + Express: Construção do servidor
-
MySQL: Banco de dados relacional
-
Knex: Consultas ao banco de dados
-
Docker: Ferramenta de DevOps para construir em 'conteiners'
-
UUID (Universally Unique IDentifier): Segurança em identificadores universalmente exclusivos
-
JWT (JSON Web Tokens): Autenticações com tokens
-
BCrypt: Armazenamento do
salted hashesde informações sensíveis -
Joi: Validação de entradas para operações com body
-
DateFNS: Comparação e Manipulação completa de datas
-
Swagger: Documentação da API
-
NodeMailer: Envio de e-mails de verificação e notificações
-
NodeSchedule: Agendamento de
operações automatizadas- O que foi automatizado: O envio de emails para usuários quando o prazo das tarefas chega a uma distância pré-definida por ele, exclusão de tarefas concluídas cujo prazo já passou e controle do estado de tarefas para que ela seja marcada como atrasada se seu prazo passou.
-
NodeFetch: Consumir a a API do
TimezoneDBpara mapear todos os fusos horários -
Path e FS: Caching local dos dados obtidos em consultas à API's externas para evitar processamento desnecessário
Clone o projeto :
git clone https://github.com/GustavoAndrad/ToDu_System.gitEntre no diretório do projeto :
cd ToDu_System! Não esqueça de preparar as variáveis de ambiente definidas em .env.example !
Instale as dependências :
npm installConstrua os conteiners configurados :
docker-compose -p todu_project up --build -dNo prompt do conteiner todu_app, rode as migrations (redefinindo para usar CommonJS) :
npx knex migrate:latest --knexfile knexfile.cjsAtenção às tecnologias aqui!
Instale as dependências:
npm installRode as migartions e rode manualmente (fora do conteiner) :
npx knex migrate:latest --knexfile knexfile.cjsRode o projeto :
npm run dev🔥 Saída no console sobre as operações agendadas:
🌙 Exemplo de uma requisição bem sucedida no Insominia:
- @GustavoAndrad - Programador e Analista




