# 🚀 VIDA180 - Plataforma de Transformação Pessoal

Sistema completo de gerenciamento de hábitos, tarefas e métricas de saúde para ajudar você a transformar sua vida em 180 dias.

## 📋 Funcionalidades

### ✅ Gerenciamento de Tarefas
- Criar, editar e excluir tarefas
- Definir prioridades (baixa, média, alta)
- Definir status (pendente, em progresso, concluída)
- Filtrar tarefas por status
- Visualizar tarefas de hoje
- Estatísticas detalhadas

### 💪 Métricas de Saúde
- Registrar peso, altura e % de gordura
- Registrar massa muscular
- Registrar medidas (cintura, peito, quadril)
- Histórico completo de medições
- Acompanhar variação de peso
- Estatísticas e resumo

### 🎯 Hábitos
- Criar e gerenciar hábitos diários
- Marcar hábitos como concluídos
- Acompanhar sequências (streaks)
- Estatísticas de conclusão

### 📈 Progresso
- Dashboard consolidado com todas as estatísticas
- Visualização de progresso em hábitos, tarefas e saúde
- Mensagens motivacionais

### 👨‍💼 Painel Administrativo
- Gerenciamento de usuários (apenas superadmin)
- Gerenciamento de mensagens diárias motivacionais

## 🛠️ Tecnologias

### Backend
- **FastAPI** - Framework web Python moderno e rápido
- **PostgreSQL** - Banco de dados relacional
- **SQLAlchemy** - ORM para Python
- **Redis** - Cache e gerenciamento de sessões
- **JWT** - Autenticação segura
- **Argon2** - Hash de senhas

### Frontend
- **React** com **TypeScript**
- **CSS Modules** - Estilização componentizada
- Design moderno com gradientes coloridos
- Interface responsiva

### DevOps
- **Docker** e **Docker Compose**
- **Nginx** - Proxy reverso
- Containerização completa

## 🚀 Instalação e Execução

### Pré-requisitos
- Docker
- Docker Compose

### Passos

1. Clone o repositório:
```bash
git clone https://meurepositorio.com/sergio.correa/vida180.git
cd vida180
```

2. Configure as variáveis de ambiente:
```bash
cp backend/.env.example backend/.env
# Edite o arquivo .env com suas configurações
```

3. Inicie os containers:
```bash
docker-compose up -d
```

4. Acesse a aplicação:
- Frontend: http://localhost:3200
- Backend API: http://localhost:8000
- Documentação API: http://localhost:8000/docs

## 📦 Estrutura do Projeto

```
vida180/
├── backend/
│   ├── app/
│   │   ├── api/          # Endpoints da API
│   │   │   ├── auth.py
│   │   │   ├── habits.py
│   │   │   ├── health.py
│   │   │   ├── tasks.py
│   │   │   ├── messages.py
│   │   │   └── admin.py
│   │   ├── core/         # Configurações core
│   │   ├── models/       # Modelos do banco de dados
│   │   ├── schemas/      # Schemas Pydantic
│   │   └── services/     # Serviços e lógica de negócio
│   ├── Dockerfile
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── components/   # Componentes reutilizáveis
│   │   ├── contexts/     # Contexts do React
│   │   ├── pages/        # Páginas da aplicação
│   │   │   ├── Dashboard.tsx
│   │   │   ├── Habits.tsx
│   │   │   ├── Tasks.tsx
│   │   │   ├── Health.tsx
│   │   │   ├── Progress.tsx
│   │   │   └── Admin.tsx
│   │   └── App.tsx
│   ├── Dockerfile
│   └── package.json
├── nginx/                # Configuração do Nginx
└── docker-compose.yml
```

## 🔐 Autenticação

O sistema utiliza JWT (JSON Web Tokens) para autenticação. Todas as rotas protegidas requerem um token válido no header:

```
Authorization: Bearer <token>
```

## 📡 API Endpoints

### Autenticação
- `POST /api/v1/auth/register` - Registrar novo usuário
- `POST /api/v1/auth/login` - Login

### Hábitos
- `GET /api/v1/habits/` - Listar hábitos
- `POST /api/v1/habits/` - Criar hábito
- `POST /api/v1/habits/{id}/complete` - Marcar como completo
- `DELETE /api/v1/habits/{id}` - Deletar hábito
- `GET /api/v1/habits/stats` - Estatísticas

### Tarefas
- `GET /api/v1/tasks/` - Listar tarefas
- `POST /api/v1/tasks/` - Criar tarefa
- `GET /api/v1/tasks/today` - Tarefas de hoje
- `PUT /api/v1/tasks/{id}` - Atualizar tarefa
- `PATCH /api/v1/tasks/{id}/status` - Atualizar status
- `DELETE /api/v1/tasks/{id}` - Deletar tarefa
- `GET /api/v1/tasks/stats/summary` - Estatísticas

### Saúde
- `GET /api/v1/health/` - Listar métricas
- `POST /api/v1/health/` - Registrar métrica
- `GET /api/v1/health/latest` - Última métrica
- `PUT /api/v1/health/{id}` - Atualizar métrica
- `DELETE /api/v1/health/{id}` - Deletar métrica
- `GET /api/v1/health/stats/summary` - Estatísticas

### Mensagens
- `GET /api/v1/messages/daily` - Mensagem motivacional do dia

### Admin (apenas superadmin)
- `GET /api/v1/admin/users` - Listar usuários
- `POST /api/v1/admin/users/{id}/toggle-active` - Ativar/desativar
- `GET /api/v1/admin/messages` - Listar mensagens
- `POST /api/v1/admin/messages` - Criar mensagem
- `DELETE /api/v1/admin/messages/{id}` - Deletar mensagem

## 🎨 Design

O sistema possui design moderno com:
- Gradientes coloridos personalizados para cada seção
- Interface responsiva
- Animações suaves
- Cards com efeitos hover
- Estatísticas visuais

## 🔧 Desenvolvimento

### Backend
```bash
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload
```

### Frontend
```bash
cd frontend
npm install
npm start
```

## 📝 Licença

Este projeto é propriedade privada.

## 👨‍💻 Autor

**Sergio Correa**
- Repositório: [https://meurepositorio.com/sergio.correa/vida180.git](https://meurepositorio.com/sergio.correa/vida180.git)

---

**VIDA180** - Transforme sua vida em 180 dias! 🚀💪

