Uma aplicação completa de agendador de tarefas (to-do list) desenvolvida com Node.js, TypeScript, Express, EJS e PostgreSQL.
- Node.js com TypeScript
- Express.js para o servidor web
- EJS como mecanismo de template
- PostgreSQL como banco de dados
- Prisma ORM para gerenciamento do banco
- Docker Compose para orquestração
- ✅ Criar, editar, excluir e listar tarefas
- ✅ Cada tarefa contém: título, descrição, data de vencimento e status
- ✅ Status das tarefas: Pendente, Em Andamento, Concluída
- ✅ Filtros por status
- ✅ Validação de formulários
- ✅ Interface responsiva e moderna
- ✅ Atualização de status via AJAX
- Docker e Docker Compose instalados
- Node.js 18+ (para desenvolvimento local)
git clone <url-do-repositorio>
cd multtanant# Construir e iniciar os containers
docker-compose up --build
# Para executar em background
docker-compose up -d --buildAbra seu navegador e acesse: http://localhost:3000
src/
├── controllers/ # Controladores da aplicação
├── services/ # Lógica de negócio
├── routes/ # Definição das rotas
├── views/ # Templates EJS
│ ├── layouts/ # Layouts base
│ └── tasks/ # Views das tarefas
├── prisma/ # Configuração do Prisma
└── app.ts # Arquivo principal
prisma/
├── schema.prisma # Schema do banco de dados
└── seed.ts # Dados iniciais
Dockerfile # Configuração do container
docker-compose.yml # Orquestração dos serviços
id: Identificador únicotitle: Título da tarefa (obrigatório)description: Descrição detalhada (opcional)dueDate: Data de vencimento (opcional)status: Status da tarefa (PENDING, IN_PROGRESS, COMPLETED)createdAt: Data de criaçãoupdatedAt: Data de última atualização
- PENDING: Tarefa pendente
- IN_PROGRESS: Tarefa em andamento
- COMPLETED: Tarefa concluída
# Instalar dependências
npm install
# Executar em modo desenvolvimento
npm run dev
# Compilar TypeScript
npm run build
# Executar aplicação compilada
npm start# Gerar cliente Prisma
npm run db:generate
# Executar migrações
npm run db:migrate
# Popular banco com dados de exemplo
npm run db:seed
# Abrir Prisma Studio
npm run db:studio# Construir containers
docker-compose build
# Iniciar serviços
docker-compose up
# Parar serviços
docker-compose down
# Ver logs
docker-compose logs -f apiGET /- Redireciona para/tasksGET /tasks- Lista todas as tarefasGET /tasks/create- Formulário de criaçãoPOST /tasks- Criar nova tarefaGET /tasks/:id/edit- Formulário de ediçãoPUT /tasks/:id- Atualizar tarefaDELETE /tasks/:id- Excluir tarefaPATCH /tasks/:id/status- Atualizar status (AJAX)
A aplicação possui uma interface moderna e responsiva com:
- Design limpo e intuitivo
- Gradientes e sombras para profundidade
- Animações suaves
- Layout responsivo para mobile
- Feedback visual para ações
- Filtros por status
- Cards organizados em grid
- Título: obrigatório, 1-100 caracteres
- Descrição: opcional, máximo 500 caracteres
- Data de vencimento: formato ISO válido
- Status: valores permitidos (PENDING, IN_PROGRESS, COMPLETED)
# Verificar se o container do banco está rodando
docker-compose ps
# Reiniciar apenas o banco
docker-compose restart db# Executar migrações manualmente
docker-compose exec api npm run db:migrate# Executar seed manualmente
docker-compose exec api npm run db:seedEste projeto está sob a licença MIT.
Seu Nome - [seu-email@exemplo.com]