# 🚀 OutAgent - Plano de Implementação

## Visão Geral
**OutAgent** é um assistente pessoal inteligente e integrado, inspirado no "Hey Google", mas com foco em **produtividade pessoal e metas diárias**. O sistema será multiplataforma (celular, relógio, TV, computador) e integrado com e-mails, calendários e outras ferramentas.

## 🎯 Objetivo
Criar um assistente que:
- **Comunique** proativamente sobre tarefas e compromissos
- **Lembre** de compromissos, deadlines e hábitos
- **Force** o cumprimento de metas diárias com acompanhamento rigoroso

---

## Fase 1: Foundation (ATUAL) 🔨
### To-Do System + Dashboard Web

**Stack:**
- **Frontend:** Vite + React (SPA moderna e responsiva)
- **Backend:** Node.js + Express (API REST)
- **Database:** SQLite (início simples, migra para PostgreSQL depois)
- **Styling:** CSS vanilla com design premium

**Features da Fase 1:**
1. ✅ Dashboard principal com visão do dia
2. ✅ Sistema de To-Do com categorias e prioridades
3. ✅ Metas diárias com tracking de progresso
4. ✅ Timer Pomodoro integrado
5. ✅ Streak de dias consecutivos produtivos

---

## Fase 2: Integrações 🔗
- **Google Calendar** - Sincronizar eventos e compromissos
- **Gmail** - Ler, categorizar e responder e-mails
- **Google Tasks** - Sincronizar tarefas
- **Notion** - Integração com workspace
- **Todoist** - Importar/exportar tarefas
- **Slack/Discord** - Notificações e comandos

## Fase 3: Multi-dispositivo 📱
- **PWA** (Progressive Web App) para celular
- **Watch OS / Wear OS** - Notificações no relógio
- **Desktop App** (Electron) - App nativo para PC
- **Smart TV** - Dashboard passivo para TV

## Fase 4: Inteligência 🧠
- **AI-powered** sugestões de tarefas
- **Análise de padrões** de produtividade
- **Coaching automático** baseado em dados
- **Comando de voz** "Hey OutAgent"

---

## Arquitetura Inicial

```
outAgent/
├── client/                  # Frontend React + Vite
│   ├── src/
│   │   ├── components/      # Componentes reutilizáveis
│   │   ├── pages/           # Páginas da aplicação
│   │   ├── hooks/           # Custom hooks
│   │   ├── services/        # API calls
│   │   ├── stores/          # Estado global
│   │   ├── styles/          # CSS global
│   │   ├── App.jsx
│   │   └── main.jsx
│   ├── index.html
│   └── vite.config.js
├── server/                  # Backend Node.js
│   ├── routes/              # Rotas da API
│   ├── models/              # Modelos de dados
│   ├── middleware/           # Middlewares
│   ├── services/            # Lógica de negócio
│   ├── database/            # SQLite setup + migrations
│   └── index.js             # Entry point
├── shared/                  # Tipos e utils compartilhados
├── package.json
└── README.md
```

## Modelo de Dados (Fase 1)

### Tasks (To-Do)
| Campo | Tipo | Descrição |
|-------|------|-----------|
| id | UUID | Identificador único |
| title | string | Título da tarefa |
| description | string | Descrição detalhada |
| category | enum | trabalho, pessoal, saúde, estudo, finanças |
| priority | enum | urgente, alta, média, baixa |
| status | enum | pendente, em_progresso, concluída, cancelada |
| due_date | datetime | Data limite |
| due_time | time | Hora limite |
| recurring | json | Configuração de recorrência |
| tags | json | Tags personalizadas |
| created_at | datetime | Data de criação |
| completed_at | datetime | Data de conclusão |

### Daily Goals (Metas Diárias)
| Campo | Tipo | Descrição |
|-------|------|-----------|
| id | UUID | Identificador único |
| title | string | Nome da meta |
| target_value | number | Valor alvo |
| current_value | number | Progresso atual |
| unit | string | Unidade (horas, tarefas, km, etc) |
| date | date | Data da meta |
| completed | boolean | Se foi atingida |

### Streaks
| Campo | Tipo | Descrição |
|-------|------|-----------|
| id | UUID | Identificador único |
| name | string | Nome do hábito |
| current_streak | number | Dias consecutivos |
| best_streak | number | Melhor sequência |
| last_check_date | date | Último check-in |
