# 🚀 Antigravity - Sistema de Gestão de Projetos e Demandas

<div align="center">

![React Native](https://img.shields.io/badge/React_Native-0.81.5-61DAFB?style=for-the-badge&logo=react&logoColor=white)
![Expo](https://img.shields.io/badge/Expo-54-000020?style=for-the-badge&logo=expo&logoColor=white)
![PHP](https://img.shields.io/badge/PHP-7.4+-777BB4?style=for-the-badge&logo=php&logoColor=white)
![MySQL](https://img.shields.io/badge/MySQL-8.0-4479A1?style=for-the-badge&logo=mysql&logoColor=white)

**Sistema completo de gestão de projetos, tarefas e demandas com aplicativo móvel multiplataforma e backend PHP.**

[Funcionalidades](#-funcionalidades) •
[Arquitetura](#-arquitetura) •
[Instalação](#-instalação) •
[API](#-api) •
[Screenshots](#-screenshots)

</div>

---

## 📋 Sobre o Projeto

O **Antigravity** é um sistema empresarial de gestão de projetos desenvolvido para controlar demandas, tarefas, custos e equipes de forma integrada. O projeto consiste em:

- **📱 Aplicativo Móvel** - React Native/Expo para iOS e Android
- **🌐 Backend API** - PHP RESTful conectado ao MySQL
- **🖥️ Webapp Legacy** - Interface web existente (PHP)

---

## ✨ Funcionalidades

### Dashboard
- 📊 Visão consolidada de métricas (Inbox, A Fazer, Pendentes, Atrasadas)
- 🔔 Destaques visuais para mudanças em tempo real
- 🔄 Atualização automática ao retornar à tela

### Gestão de Projetos
- ➕ Criação de novos projetos com temas, divisões e prazos
- ✏️ Edição inline de status, resumo, equipe e datas
- 📈 Acompanhamento de progresso (Backlog → Iniciado → Em Progresso → Para Conclusão)
- 📊 **Gráfico de Gantt** visual com cores por status

### Gestão de Tarefas
- 📝 Criação e edição de tarefas com responsáveis
- 📎 Upload de anexos (documentos e imagens)
- 💬 Sistema de providências/comentários
- 🔗 Links externos vinculados
- 📅 Controle de prazos com indicadores visuais

### Gestão de Demandas
- 📋 Listagem por filtros (Pessoais, Para Mim, Para Outros, Concluídas)
- ✅ Conclusão rápida com providência
- 📌 Prioridades (Alta, Média, Baixa)

### Gestão de Custos
- 💰 Cadastro de custos por projeto
- ✅ Workflow de aprovação/rejeição
- 📊 Categorias e centros de custo

### Recursos Adicionais
- 🔐 Autenticação de usuários
- 🔑 Alteração de senha
- 📤 Menu global acessível de qualquer tela
- 🎨 Interface padronizada com SafeAreaView

---

## 🏗️ Arquitetura

```
Antigravity/
├── 📱 mobile-app/                 # Aplicativo React Native/Expo
│   ├── components/                # Componentes reutilizáveis
│   │   ├── BackButton.js          # Botão voltar padronizado
│   │   ├── GlobalMenu.js          # Menu lateral global
│   │   ├── MenuButton.js          # Botão de menu (hamburger)
│   │   ├── ProjectCard.js         # Card de projeto
│   │   └── ProjectGanttChart.js   # Gráfico de Gantt SVG
│   ├── context/
│   │   └── MenuContext.js         # Contexto do menu global
│   ├── screens/                   # Telas do aplicativo
│   │   ├── DashboardScreen.js
│   │   ├── ProjectDetailsScreen.js
│   │   ├── TaskDetailsScreen.js
│   │   ├── DemandListScreen.js
│   │   ├── CreateProjectScreen.js
│   │   ├── CreateTaskScreen.js
│   │   └── ... (14 telas)
│   ├── App.js                     # Entrada principal
│   ├── config.js                  # Configuração da API
│   └── package.json
│
├── 🌐 webapp/                     # Backend e Webapp PHP
│   ├── api/                       # Endpoints REST
│   │   ├── dashboard.php
│   │   ├── project_details.php
│   │   ├── project_actions.php
│   │   ├── task_actions.php
│   │   ├── demand_*.php
│   │   └── ... (33+ endpoints)
│   └── ... (webapp legacy)
│
└── 📄 README.md
```

---

## 🛠️ Stack Tecnológica

### Frontend Mobile
| Tecnologia | Versão | Descrição |
|------------|--------|-----------|
| React Native | 0.81.5 | Framework multiplataforma |
| Expo | 54.0.30 | Toolchain e runtime |
| React Navigation | 7.x | Navegação entre telas |
| React Native SVG | 15.12.1 | Gráficos vetoriais (Gantt) |
| DateTimePicker | 8.4.4 | Seletores de data |
| Expo Document Picker | 14.x | Upload de arquivos |

### Backend
| Tecnologia | Versão | Descrição |
|------------|--------|-----------|
| PHP | 7.4+ | Linguagem backend |
| MySQL | 8.0 | Banco de dados |
| Apache/XAMPP | - | Servidor web |

---

## 🚀 Instalação

### Pré-requisitos

- Node.js 18+ 
- npm ou yarn
- Expo CLI (`npm install -g expo-cli`)
- XAMPP ou servidor PHP/MySQL
- Expo Go no dispositivo móvel (para desenvolvimento)

### Backend (API)

1. Clone o repositório:
```bash
git clone https://github.com/webgruppo/webgruppo_new.git
cd webgruppo_new
```

2. Configure o XAMPP/servidor para apontar para a pasta do projeto

3. Importe o banco de dados MySQL (estrutura não incluída neste repo)

4. Configure as credenciais de banco em `webapp/api/*.php`

### Mobile App

1. Navegue para a pasta do app:
```bash
cd mobile-app
```

2. Instale as dependências:
```bash
npm install
```

3. Configure a URL da API em `config.js`:
```javascript
export const API_URL = 'http://SEU_IP:PORTA/Antigravity/webapp/api';
```

4. Inicie o servidor de desenvolvimento:
```bash
npx expo start
```

5. Escaneie o QR code com o Expo Go (iOS/Android)

---

## 📡 API

### Endpoints Principais

| Método | Endpoint | Descrição |
|--------|----------|-----------|
| `GET` | `/api/dashboard.php` | Métricas do dashboard |
| `GET` | `/api/my_projects.php` | Lista projetos do usuário |
| `GET` | `/api/project_details.php` | Detalhes de um projeto |
| `POST` | `/api/project_actions.php` | Ações em projetos |
| `GET` | `/api/tasks.php` | Lista de tarefas |
| `GET` | `/api/task_details.php` | Detalhes de uma tarefa |
| `POST` | `/api/task_actions.php` | Ações em tarefas |
| `GET` | `/api/demand_list.php` | Lista de demandas |
| `POST` | `/api/demand_actions.php` | Ações em demandas |
| `POST` | `/api/login.php` | Autenticação |

### Exemplo de Requisição

```bash
# Dashboard
curl "http://localhost/Antigravity/webapp/api/dashboard.php?user_id=1&cliente=bpoconsig"

# Detalhes do Projeto
curl "http://localhost/Antigravity/webapp/api/project_details.php?demanda_id=123&user_id=1"
```

---

## 📸 Screenshots

> *Em desenvolvimento - Capturas de tela do aplicativo serão adicionadas em breve.*

### Principais Telas
- 🏠 Dashboard com métricas
- 📋 Lista de Projetos
- 📊 Gráfico de Gantt
- ✅ Detalhes de Tarefa
- 📝 Criação de Projeto

---

## 🎨 Guia de Estilo

### Cores Principais
| Cor | Hex | Uso |
|-----|-----|-----|
| Azul Primário | `#007AFF` | Ações, links, botões primários |
| Verde Sucesso | `#4CAF50` | Concluído, aprovado |
| Amarelo Alerta | `#FFC107` | Vencendo em breve |
| Vermelho Erro | `#F44336` | Atrasado, vencido |
| Cinza Cancelado | `#9E9E9E` | Cancelado, inativo |

### Componentes Padronizados
- `BackButton` - Botão de voltar consistente
- `MenuButton` - Acesso ao menu global
- `SafeAreaView` - Respeita áreas seguras do dispositivo

---

## 🤝 Contribuindo

1. Faça um Fork do projeto
2. Crie uma Branch para sua feature (`git checkout -b feature/NovaFeature`)
3. Commit suas mudanças (`git commit -m 'Add: Nova feature'`)
4. Push para a Branch (`git push origin feature/NovaFeature`)
5. Abra um Pull Request

---

## 📄 Licença

Este projeto é proprietário. Todos os direitos reservados.

---

## 👥 Equipe

**WebGruppo** - Desenvolvimento e Manutenção

---

<div align="center">

Feito com ❤️ usando React Native e PHP

</div>
