{"id":32497526,"url":"https://github.com/esbnet/orbia-task-manager","last_synced_at":"2026-05-01T16:35:12.079Z","repository":{"id":291477833,"uuid":"977661304","full_name":"esbnet/orbia-task-manager","owner":"esbnet","description":"Aplicação qua facilita a administração do tempo *","archived":false,"fork":false,"pushed_at":"2026-03-05T16:59:05.000Z","size":1921,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-12T17:39:34.418Z","etag":null,"topics":["clean-architecture","next","next-auth","prisma","react","reactqueryv5","shadcn-ui","solid","solid-principles","swagger","tailwindcss","typescript","zod"],"latest_commit_sha":null,"homepage":"https://orbia-esbnet.vercel.app","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/esbnet.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-04T17:51:00.000Z","updated_at":"2026-03-05T16:59:09.000Z","dependencies_parsed_at":"2025-08-05T07:12:36.277Z","dependency_job_id":"afbd2a1b-9120-4f7c-87cd-8c55c12e5de3","html_url":"https://github.com/esbnet/orbia-task-manager","commit_stats":null,"previous_names":["esbnet/task-manager-clean-arch-example","esbnet/orbia-task-manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/esbnet/orbia-task-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esbnet%2Forbia-task-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esbnet%2Forbia-task-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esbnet%2Forbia-task-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esbnet%2Forbia-task-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esbnet","download_url":"https://codeload.github.com/esbnet/orbia-task-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esbnet%2Forbia-task-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32505106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["clean-architecture","next","next-auth","prisma","react","reactqueryv5","shadcn-ui","solid","solid-principles","swagger","tailwindcss","typescript","zod"],"created_at":"2025-10-27T14:50:37.780Z","updated_at":"2026-05-01T16:35:12.063Z","avatar_url":"https://github.com/esbnet.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌟 Orbia - Task Manager com Clean Architecture\n\n\u003e Uma aplicação completa de gerenciamento de tarefas, hábitos e rotina diária implementada com **Clean Architecture** e princípios **SOLID**, demonstrando boas práticas de desenvolvimento de software.\n\n![Tela da aplicação](./src/assets/tela.png)\n\n## 🎯 Sobre o Projeto\n\n**Orbia** é uma aplicação **full-stack** de produtividade pessoal que combina gerenciamento de tarefas, tracking de hábitos e organização da rotina diária. Desenvolvida para demonstrar a implementação prática da **Clean Architecture** em um contexto real, oferece uma arquitetura robusta e escalável.\n\n### 🎆 Diferenciais\n- **Arquitetura Limpa**: Implementação completa dos princípios SOLID\n- **PWA Ready**: Funciona offline e pode ser instalada como app\n- **Responsivo**: Interface adaptada para desktop e mobile\n- **Analytics**: Dashboard com métricas e insights de produtividade\n- **Organização Avançada**: Ferramentas de foco e estimativa de tempo\n\n### ✨ Funcionalidades\n\n#### 📅 **Tarefas Diárias (Daily)**\n- ✅ Criar tarefas com repetição (diária, semanal, mensal)\n- ✅ Gerenciar subtarefas\n- ✅ Marcar como concluída com log de histórico\n- ✅ Filtros por data e status\n- ✅ Sistema de tags e dificuldade\n\n#### 📝 **Tarefa (Todos)**\n- ✅ Criar tarefas pontuais\n- ✅ Gerenciar subtarefas\n- ✅ Sistema de prioridades\n- ✅ Controle de conclusão\n- ✅ Organização por tags\n\n#### 🔄 **Hábitos (Habits)**\n- ✅ Criar hábitos recorrentes\n- ✅ Sistema de reset de progresso (diário, semanal, mensal)\n- ✅ Tracking contínuo sem ocultar hábitos\n- ✅ Níveis de dificuldade\n- ✅ Histórico de períodos e conclusões\n- ✅ Métricas de consistência\n\n#### 🏷️ **Sistema de Tags**\n- ✅ Criação e gerenciamento de tags\n- ✅ Cores personalizadas\n- ✅ Associação com tarefas\n- ✅ Filtros por categoria\n\n#### 📈 **Analytics \u0026 Insights**\n- ✅ Dashboard de indicadores\n- ✅ Análise de desempenho\n- ✅ Relatórios semanais\n- ✅ Tracking de tempo\n- ✅ Metas e progresso\n\n#### 🎯 **Ferramentas de Organização**\n- ✅ Organizador de tarefas\n- ✅ Modo foco\n- ✅ Estimador de tempo\n- ✅ Configurações personalizadas\n\n## 🏗️ Arquitetura\n\n### Clean Architecture Implementada\n\n```\n📁 src/\n├── 🎯 domain/           # Camada de Domínio\n│   ├── entities/        # Entidades de negócio\n│   ├── repositories/    # Interfaces dos repositórios\n│   └── value-objects/   # Objetos de valor\n├── 🔧 application/     # Camada de Aplicação\n│   ├── use-cases/      # Casos de uso\n│   │   ├── daily/      # Daily tasks\n│   │   ├── todo/       # Todos\n│   │   ├── habit/      # Hábitos\n│   │   └── tag/        # Tags\n│   └── dto/            # Data Transfer Objects\n├── 🔌 infra/           # Camada de Infraestrutura\n│   ├── database/       # Repositórios Prisma\n│   ├── repositories/   # Repositórios HTTP\n│   └── services/       # Serviços externos\n├── 🖥️ app/             # Next.js App Router\n│   ├── api/            # API Routes\n│   ├── (home)/         # Páginas principais\n│   └── auth/           # Autenticação\n├── ⚛️ components/       # Componentes React\n│   ├── ui/             # Componentes base\n│   ├── analytics/      # Dashboards\n│   └── organization/   # Ferramentas\n├── 🔗 contexts/        # React Context\n└── 🎯 hooks/           # Custom Hooks\n```\n\n### 🎯 Princípios SOLID Aplicados\n\n- **S** - Single Responsibility: Cada classe tem uma única responsabilidade\n- **O** - Open/Closed: Extensível sem modificar código existente\n- **L** - Liskov Substitution: Implementações podem ser substituídas\n- **I** - Interface Segregation: Interfaces específicas e coesas\n- **D** - Dependency Inversion: Dependências abstraídas por interfaces\n\n## 🛠️ Tecnologias\n\n### Frontend\n- **Next.js 14** - Framework React com App Router\n- **TypeScript** - Tipagem estática e IntelliSense\n- **Tailwind CSS** - Estilização utilitária\n- **Shadcn/ui** - Componentes acessíveis e customizáveis\n- **React Hook Form** - Gerenciamento de formulários\n- **TanStack Query** - Gerenciamento de estado servidor\n- **Date-fns** - Manipulação de datas\n- **Recharts** - Gráficos e visualizações\n- **PWA** - Progressive Web App\n\n### Backend\n- **Next.js API Routes** - Endpoints serverless\n- **Prisma ORM** - Mapeamento objeto-relacional\n- **Postgres** - Banco de dados (desenvolvimento)\n\n### Arquitetura\n- **Clean Architecture** - Separação de responsabilidades\n- **SOLID Principles** - Princípios de design orientado a objetos\n- **Repository Pattern** - Abstração de acesso a dados\n- **Use Case Pattern** - Lógica de negócio isolada\n- **Dependency Injection** - Inversão de controle\n\n## 🔗 API Endpoints\n\n### 📅 Daily Tasks\n```http\nGET    /api/daily              # Listar tarefas diárias\nPOST   /api/daily              # Criar tarefa diária\nPATCH  /api/daily              # Atualizar tarefa diária\nDELETE /api/daily?id={id}      # Deletar tarefa diária\n```\n\n### 📝 Todos\n```http\nGET    /api/todos              # Listar todos\nPOST   /api/todos              # Criar todo\nPATCH  /api/todos              # Atualizar todo\nDELETE /api/todos?id={id}      # Deletar todo\n```\n\n### 🔄 Habits\n```http\nGET    /api/habits             # Listar hábitos\nPOST   /api/habits             # Criar hábito\nPATCH  /api/habits             # Atualizar hábito\nDELETE /api/habits?id={id}     # Deletar hábito\n```\n\n### 🏷️ Tags\n```http\nGET    /api/tags               # Listar tags\nPOST   /api/tags               # Criar tag\nPATCH  /api/tags               # Atualizar tag\nDELETE /api/tags?id={id}       # Deletar tag\n```\n\n### 📋 Subtasks\n```http\n# Daily Subtasks\nGET    /api/daily-subtasks?dailyId={id}  # Listar por daily\nPOST   /api/daily-subtasks              # Criar subtask\nPATCH  /api/daily-subtasks              # Atualizar subtask\nDELETE /api/daily-subtasks?id={id}     # Deletar subtask\n\n# Todo Subtasks\nGET    /api/todo-subtasks?todoId={id}   # Listar por todo\nPOST   /api/todo-subtasks               # Criar subtask\nPATCH  /api/todo-subtasks               # Atualizar subtask\nDELETE /api/todo-subtasks?id={id}      # Deletar subtask\n```\n\n### 📊 Logs\n```http\nPOST   /api/daily-logs         # Registrar conclusão de daily\nPOST   /api/todo-logs          # Registrar conclusão de todo\nPOST   /api/habit-logs         # Registrar conclusão de hábito\n```\n\n### 📚 Documentação da API\n\nA documentação completa da API está disponível via Swagger:\n\n```http\nGET /docs                   # Interface Swagger UI\nGET /api/docs              # Especificação OpenAPI JSON\n```\n\nAcesse `http://localhost:3000/docs` para explorar todos os endpoints interativamente.\n\n## 🚀 Setup e Implantação\n\n### Pré-requisitos\n- Node.js 18+\n- pnpm, npm ou yarn\n- Git\n\n### 1️⃣ Clonagem e Instalação\n```bash\n# Clonar repositório\ngit clone https://github.com/esbnet/orbia-task-manager.git\ncd orbia-task-manager\n\n# Instalar dependências\nnpm install\n```\n\n### 2️⃣ Configuração do Banco\n```bash\n# Gerar cliente Prisma\nnpx prisma generate\n\n# Executar migrações\nnpx prisma db push\n\n# (Opcional) Visualizar banco\nnpx prisma studio\n```\n\n### 3️⃣ Variáveis de Ambiente\nCrie um arquivo `.env.local`:\n```env\n# Database\nDATABASE_URL=\"file:./dev.db\"\n\n# Next.js\nNEXTAUTH_SECRET=\"your-secret-key\"\nNEXTAUTH_URL=\"http://localhost:3000\"\n```\n\n### 4️⃣ Desenvolvimento\n```bash\n# Iniciar servidor de desenvolvimento\nnpm run dev\n\n# Aplicação disponível em http://localhost:3000\n```\n\n### 5️⃣ Build e Deploy\n```bash\n# Build para produção\nnpm run build\n\n# Iniciar em produção\nnpm start\n```\n\n### 🐳 Docker (Opcional)\n```bash\n# Build da imagem\ndocker build -t task-manager .\n\n# Executar container\ndocker run -p 3000:3000 task-manager\n```\n\n### ☁️ Deploy na Vercel\n```bash\n# Instalar Vercel CLI\nnpm i -g vercel\n\n# Deploy\nvercel --prod\n```\n\n## 🧪 Testes\n```bash\n# Executar testes unitários\nnpm test\n\n# Testes com coverage\nnpm run test:coverage\n\n# Testes e2e\nnpm run test:e2e\n```\n\n## 📚 Estrutura de Pastas Detalhada\n\n```\nsrc/\n├── app/                 # Next.js App Router\n│   ├── api/            # API Routes\n│   ├── globals.css     # Estilos globais\n│   ├── layout.tsx      # Layout principal\n│   └── page.tsx        # Página inicial\n├── components/         # Componentes React\n│   ├── ui/            # Componentes base (Shadcn)\n│   ├── daily/         # Componentes de Daily\n│   ├── todo/          # Componentes de Todo\n│   └── habit/         # Componentes de Habit\n├── contexts/          # Context API\n├── domain/            # Camada de Domínio\n├── hooks/             # Custom Hooks\n├── infra/             # Infraestrutura\n├── lib/               # Utilitários\n├── types/             # Definições de tipos\n├── use-cases/         # Casos de uso\n└── utils/             # Funções utilitárias\n```\n\n## 🤝 Contribuição\n\n1. Fork o projeto\n2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)\n3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)\n4. Push para a branch (`git push origin feature/AmazingFeature`)\n5. Abra um Pull Request\n\n## 📄 Licença\n\nEste projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n## 👨‍💻 Autor\n\n**Esbnet** - [GitHub](https://github.com/esbnet)\n\n---\n\n⭐ **Se este projeto te ajudou, deixe uma estrela!**\n\n\n=========================\n\n🔧 Configuração Atual:\nDesenvolvimento (Local):\nProvider: postgresql\n\nDatabase: postgresql://admin:admin123@localhost:5432/taskmanager\n\nUsa directUrl para melhor performance\n\nProdução (Supabase):\nProvider: postgresql\n\nDatabase: Supabase PostgreSQL na nuvem\n\nConnection pooling otimizado\n\n📋 Scripts disponíveis:\n```bash\n# Configurar para desenvolvimento (PostgreSQL local)\nnpm run db:dev\n\n# Configurar para produção (PostgreSQL Supabase)\nnpm run db:prod\n\n# Push do schema para desenvolvimento\nnpm run db:push:dev\n\n# Push do schema para produção  \nnpm run db:push:prod\n```\n\n🎯 Benefícios:\n✅ Consistência: PostgreSQL em ambos ambientes\n✅ Recursos avançados: Arrays, JSON, etc. em desenvolvimento\n✅ Paridade: Mesmo comportamento local e produção\n✅ Alternância fácil: Scripts automatizados\n\nteste\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesbnet%2Forbia-task-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesbnet%2Forbia-task-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesbnet%2Forbia-task-manager/lists"}