{"id":32475079,"url":"https://github.com/codeonthespectrum/sensorial_app","last_synced_at":"2026-07-03T20:32:13.476Z","repository":{"id":320005789,"uuid":"1080152704","full_name":"codeonthespectrum/sensorial_app","owner":"codeonthespectrum","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-21T11:02:53.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-21T13:08:03.194Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/codeonthespectrum.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-10-21T00:23:00.000Z","updated_at":"2025-10-21T11:02:57.000Z","dependencies_parsed_at":"2025-10-21T13:08:14.469Z","dependency_job_id":null,"html_url":"https://github.com/codeonthespectrum/sensorial_app","commit_stats":null,"previous_names":["codeonthespectrum/sensorial_app"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/codeonthespectrum/sensorial_app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeonthespectrum%2Fsensorial_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeonthespectrum%2Fsensorial_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeonthespectrum%2Fsensorial_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeonthespectrum%2Fsensorial_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeonthespectrum","download_url":"https://codeload.github.com/codeonthespectrum/sensorial_app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeonthespectrum%2Fsensorial_app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35101088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"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":[],"created_at":"2025-10-26T20:57:14.631Z","updated_at":"2026-07-03T20:32:13.469Z","avatar_url":"https://github.com/codeonthespectrum.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌍 Sensorial MAP - App para Neurodivergentes\n\nUm aplicativo web completo para medir, registrar e compartilhar a acessibilidade de ambientes públicos em relação a ruído e luminosidade. Desenvolvido especialmente para pessoas autistas e outras neurodiversidades que precisam encontrar espaços adequados ao seu perfil sensorial.\n\n# Hackathon Atip\nEsse aplicativo foi pensado das regras de negócio até a produção de prototipo para o Hackathon atip 2025, com o tema de acessibilidade.\n\n## 📋 Tabela de Conteúdos\n\n- [Visão Geral](#-visão-geral)\n- [Características](#-características)\n- [Arquitetura do Projeto](#-arquitetura-do-projeto)\n- [Pré-requisitos](#-pré-requisitos)\n- [Instalação](#-instalação)\n- [Como Usar](#-como-usar)\n- [API Endpoints](#-api-endpoints)\n- [Estrutura de Pastas](#-estrutura-de-pastas)\n- [Tecnologias Utilizadas](#-tecnologias-utilizadas)\n- [Documentação Técnica](#-documentação-técnica)\n- [Contribuindo](#-contribuindo)\n\n## 🎯 Visão Geral\n\n**Ambientes Acessíveis** é uma plataforma que permite aos usuários:\n- Registrar medições de ruído e luminosidade em locais públicos\n- Visualizar ambientes em um mapa interativo\n- Consultar dados coletados pela comunidade\n- Classificar ambientes de forma simples e intuitiva\n\nO app utiliza sensores nativos do navegador (microfone e câmera) para capturar dados em tempo real, eliminando a necessidade de aplicativos externos.\n\n### Para Quem?\n\n- 👤 Pessoas autistas (TEA)\n- 👤 Pessoas com TDAH\n- 👤 Neurodivergentes em geral que precisam encontrar espaços seguros\n- 👤 Administradores de espaços públicos que desejam adequar seus ambientes\n\n## ✨ Características\n\n### 🔐 Autenticação\n- Registro e login com email\n- Tokenização JWT segura\n- Sessões persistentes com localStorage\n- Perfil de usuário com informações de neurodiversidade\n\n### 🗺️ Mapa Interativo\n- Visualização em tempo real com OpenStreetMap\n- Marcadores coloridos indicando nível de acessibilidade\n  - 🟢 **Verde**: Bom (\u003c 45 dB)\n  - 🟡 **Laranja**: Ok (45-55 dB)\n  - 🔴 **Vermelho**: Atenção/Ruim (\u003e 55 dB)\n- Zoom e navegação fluída\n- Detalhes do local ao clicar em marcador\n\n### 📊 Medições de Sensores\n- **Ruído**: Captura via Web Audio API\n  - Análise FFT em tempo real\n  - Resultado em decibéis (dB)\n  - Classificação automática\n- **Luminosidade**: Captura via câmera\n  - Análise de pixels em tempo real\n  - Resultado em lux (Lux)\n  - Correção gama automática\n\n### 🔍 Busca e Filtro\n- Busca por nome ou endereço do local\n- Filtro por tipo de ambiente\n- Resultados em tempo real\n\n### 📝 Registro Manual\n- Classificação rápida: Bom / Ok / Atenção / Ruim\n- Salva automaticamente após medição por sensores\n- Histórico de medições\n\n### 🏅 Selo de Acessibilidade\n- Local recebe \"Selo Acessível\" após 100 registros bom/ok no último mês\n- Indica que o espaço é adequado para neurodivergentes\n\n## 🏗️ Arquitetura do Projeto\n\n```\nsensorial_app/\n├── estrutura-back/          # Backend API (FastAPI)\n│   ├── main.py             # Servidor principal com todos os endpoints\n│   ├── run_with_test_data.py # Script para iniciar com dados de teste\n│   ├── requirements.txt      # Dependências Python\n│   └── db.py               # Configuração de banco (MongoDB)\n├── frontend_teste/          # Frontend (HTML5/CSS3/JS)\n│   ├── index.html          # Interface principal\n│   ├── script.js           # Lógica da aplicação\n│   ├── sensores.js         # Classe SensorManager\n│   ├── styles.css          # Estilos responsivos\n│   └── serve_frontend.py   # Servidor local para frontend\n└── docs/                    # Documentação técnica\n    ├── ARQUITETURA.md      # Visão geral da arquitetura\n    ├── MAPA_OPENSTREETMAP.md # Implementação do mapa\n    ├── FLUXO_MEDICOES.md   # Fluxo de medições\n    ├── SENSORES_TECNICO.md # Detalhes técnicos dos sensores\n    └── TESTE_COM_DADOS_REAIS.md # Guia de testes\n```\n\n### Fluxo de Dados\n\n```\n┌─────────────────┐\n│   Frontend      │ (HTML/CSS/JS)\n│  - UI/UX        │\n│  - Sensores     │\n│  - Mapa         │\n└────────┬────────┘\n         │ HTTP/REST\n         ↓\n┌─────────────────┐\n│   Backend       │ (FastAPI)\n│  - API REST     │\n│  - Validação    │\n│  - Classificação│\n│  - Persistência │\n└────────┬────────┘\n         │\n         ↓\n┌─────────────────┐\n│   Database      │ (MongoDB*)\n│  - Usuários     │\n│  - Locais       │\n│  - Registros    │\n└─────────────────┘\n\n* Atualmente em-memória (estrutura pronta para MongoDB)\n```\n\n## 📦 Pré-requisitos\n\n- **Python 3.9+** (testado em 3.12.2)\n- **Node.js** (opcional, apenas se quiser usar gerenciadores de pacotes)\n- **Navegador moderno** (Chrome, Firefox, Safari, Edge)\n- Permissões para:\n  - ✅ Microfone (para medir ruído)\n  - ✅ Câmera (para medir luminosidade)\n  - ✅ Localização/GPS (para encontrar endereço)\n\n## 🚀 Instalação\n\n### 1. Clone o Repositório\n\n```bash\ngit clone https://github.com/codeonthespectrum/sensorial_app.git\ncd sensorial_app\n```\n\n### 2. Crie um Ambiente Virtual Python\n\n```bash\n# macOS/Linux\npython3 -m venv .venv\nsource .venv/bin/activate\n\n# Windows\npython -m venv .venv\n.venv\\Scripts\\activate\n```\n\n### 3. Instale as Dependências\n\n```bash\npip install -r estrutura-back/requirements.txt\n```\n\n### 4. Execute o Backend\n\n```bash\n# Opção A: Com dados de teste pré-carregados\ncd estrutura-back\npython run_with_test_data.py\n\n# Opção B: Backend limpo (sem dados)\ncd estrutura-back\npython main.py\n```\n\nO backend estará disponível em: `http://localhost:8000`\n\n### 5. Execute o Frontend (em outro terminal)\n\n```bash\ncd frontend_teste\npython serve_frontend.py\n```\n\nO frontend estará disponível em: `http://localhost:3000`\n\n⚠️ **ATENÇÃO**\n- O frontend descrito como `/front_test` são testes para visualização funcional do backend. A versão final ficará disponivel em 27/10/2025.\n\n### 6. Acesse a Aplicação\n\nAbra seu navegador e acesse: **http://localhost:3000**\n\n## 💻 Como Usar\n\n### Primeiro Acesso\n\n1. **Registre uma conta**\n   - Clique em \"Não tem conta? Crie uma\"\n   - Preencha: Nome, Email, Senha, Cidade, Neurodiversidade\n   - Clique em \"Registrar\"\n\n2. **Escolha seu tipo de neurodiversidade**\n   - TEA (Transtorno do Espectro Autista)\n   - TDAH\n   - Outro\n   - Não informado\n\n### Usando o Mapa\n\n1. **Visualizar Locais**\n   - Vá para a aba \"Buscar\"\n   - O mapa carregará automaticamente\n   - Vê marcadores coloridos dos ambientes registrados\n\n2. **Filtrar Locais**\n   - Digite um nome ou endereço na busca\n   - Filtre por tipo de ambiente (Restaurante, Biblioteca, etc.)\n   - O mapa se atualiza em tempo real\n\n3. **Ver Detalhes**\n   - Clique em um marcador no mapa\n   - Verá: Nome, Endereço, Última medição, Total de registros\n\n### Registrar Medições\n\n#### Modo Automático (com Sensores)\n\n1. Vá para aba \"Sensores\"\n2. **Para Medir Ruído:**\n   - Clique em \"Medir Ruído\"\n   - Conceda permissão de microfone\n   - Mantenha silêncio por 3 segundos\n   - Resultado em dB aparecerá\n3. **Para Medir Luminosidade:**\n   - Clique em \"Medir Luminosidade\"\n   - Conceda permissão de câmera\n   - Aponte para o ambiente\n   - Resultado em Lux aparecerá\n\n#### Modo Manual (Classificação Rápida)\n\n1. Vá para aba \"Registrar\"\n2. Selecione um local\n3. Escolha: **Bom** / **Ok** / **Atenção** / **Ruim**\n4. Clique em \"Registrar\"\n\n### Consultar Perfil\n\n1. Vá para aba \"Perfil\"\n2. Veja suas informações e histórico\n\n## 🔌 API Endpoints\n\n### Autenticação\n\n```http\nPOST /auth/registro\nContent-Type: application/json\n\n{\n  \"nome\": \"João Silva\",\n  \"email\": \"joao@example.com\",\n  \"senha\": \"senha123\",\n  \"cidade\": \"São Paulo\",\n  \"neurodiversidade\": \"TEA\"\n}\n\nResponse: 201 Created\n{\n  \"access_token\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\",\n  \"token_type\": \"bearer\"\n}\n```\n\n```http\nPOST /auth/login\nContent-Type: application/json\n\n{\n  \"email\": \"joao@example.com\",\n  \"senha\": \"senha123\"\n}\n\nResponse: 200 OK\n{\n  \"access_token\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\",\n  \"token_type\": \"bearer\"\n}\n```\n\n```http\nGET /auth/me\nAuthorization: Bearer \u003ctoken\u003e\n\nResponse: 200 OK\n{\n  \"nome\": \"João Silva\",\n  \"email\": \"joao@example.com\",\n  \"cidade\": \"São Paulo\",\n  \"neurodiversidade\": \"TEA\"\n}\n```\n\n### Locais\n\n```http\nGET /locais/proximos?latitude=-23.5505\u0026longitude=-46.6333\u0026raio_km=5\u0026tipo_ambiente=Restaurante\n\nResponse: 200 OK\n{\n  \"locais\": [\n    {\n      \"place_id\": \"starbucks_paulista\",\n      \"nome_local\": \"Starbucks Paulista\",\n      \"tipo_ambiente\": \"Cafeteria\",\n      \"coordenadas\": {\n        \"latitude\": -23.5612,\n        \"longitude\": -46.6560\n      },\n      \"nivel_ruido_atual\": \"Ok\",\n      \"nivel_luz_atual\": \"Bom\",\n      \"ultima_atualizacao\": \"2025-10-21T15:30:00\",\n      \"selo_acessivel\": false\n    }\n  ],\n  \"total\": 1\n}\n```\n\n```http\nGET /locais/{place_id}\n\nResponse: 200 OK\n{\n  \"place_id\": \"starbucks_paulista\",\n  \"nome_local\": \"Starbucks Paulista\",\n  \"tipo_ambiente\": \"Cafeteria\",\n  \"coordenadas\": {...},\n  \"nivel_ruido_atual\": \"Ok\",\n  \"total_registros\": 25,\n  \"selo_acessivel\": false,\n  \"ultimos_5_registros\": [...],\n  \"estatisticas_horario\": [...]\n}\n```\n\n### Registros\n\n```http\nPOST /registros\nAuthorization: Bearer \u003ctoken\u003e\nContent-Type: application/json\n\n{\n  \"place_id\": \"starbucks_paulista\",\n  \"nome_local\": \"Starbucks Paulista\",\n  \"endereco\": \"Av. Paulista, 1000\",\n  \"tipo_ambiente\": \"Cafeteria\",\n  \"coordenadas\": {\n    \"latitude\": -23.5612,\n    \"longitude\": -46.6560\n  },\n  \"ruido_db\": 48.5,\n  \"luminosidade_lux\": 250\n}\n\nResponse: 201 Created\n{\n  \"mensagem\": \"Registro criado com sucesso\",\n  \"id\": 15,\n  \"nivel_ruido\": \"Ok\",\n  \"nivel_luz\": \"Bom\"\n}\n```\n\n### Sensores\n\n```http\nPOST /sensores/processar-audio\nContent-Type: application/json\n\n{\n  \"frequencias\": [100, 200, 300, ...],\n  \"energia_media\": 0.245\n}\n\nResponse: 200 OK\n{\n  \"db_estimado\": 48.5,\n  \"energia_media\": 0.245,\n  \"quantidade_frequencias\": 128,\n  \"classificacao\": \"Ok\"\n}\n```\n\n```http\nPOST /sensores/processar-luminosidade\nContent-Type: application/json\n\n{\n  \"r\": 200,\n  \"g\": 210,\n  \"b\": 190\n}\n\nResponse: 200 OK\n{\n  \"lux_estimado\": 285.5,\n  \"luminancia\": 0.478,\n  \"rgb\": {\"r\": 200, \"g\": 210, \"b\": 190},\n  \"classificacao\": \"Bom\"\n}\n```\n\n```http\nGET /health\n\nResponse: 200 OK\n{\n  \"status\": \"ok\",\n  \"timestamp\": \"2025-10-21T15:35:20\",\n  \"usuarios_cadastrados\": 15,\n  \"locais_cadastrados\": 42,\n  \"registros_totais\": 287\n}\n```\n\n### Tipos de Ambiente\n\n```http\nGET /tipos-ambiente\n\nResponse: 200 OK\n{\n  \"tipos\": [\n    {\n      \"valor\": \"Restaurante\",\n      \"limites_ruido\": {\n        \"bom\": [0, 45],\n        \"ok\": [45, 50],\n        \"atencao\": [50, 55],\n        \"ruim\": [55, 120]\n      },\n      \"limites_luz\": {...}\n    },\n    ...\n  ]\n}\n```\n\n### Informações de Sensores\n\n```http\nGET /sensores/info\n\nResponse: 200 OK\n{\n  \"ruido\": {\n    \"metodo\": \"Web Audio API\",\n    \"descricao\": \"Captura áudio do microfone e analisa frequências\",\n    \"precisao\": \"±3-5 dB\",\n    \"limitacoes\": [...]\n  },\n  \"luminosidade\": {...}\n}\n```\n\n## 📂 Estrutura de Pastas\n\n```\nsensorial_app/\n│\n├── 📄 README.md                          # Este arquivo\n├── 📄 .gitignore\n├── 📄 LICENSE\n│\n├── 📁 estrutura-back/                    # Backend FastAPI\n│   ├── 📄 main.py                        # API principal (588 linhas)\n│   ├── 📄 run_with_test_data.py          # Startup com dados de teste\n│   ├── 📄 requirements.txt                # Dependências Python\n│   ├── 📄 db.py                          # Config MongoDB (template)\n│   ├── 📄 api_test.sh                    # Scripts de teste\n│   ├── 📄 test_api_interativo.py\n│   ├── 📄 docker-compose.yml             # Config Docker (template)\n│   └── 📁 __pycache__/\n│\n├── 📁 frontend_teste/                    # Frontend Web\n│   ├── 📄 index.html                     # Template HTML (5 abas)\n│   ├── 📄 script.js                      # Lógica principal (856 linhas)\n│   ├── 📄 sensores.js                    # Classe SensorManager\n│   ├── 📄 styles.css                     # Estilos responsivos\n│   ├── 📄 serve_frontend.py              # Servidor local\n│   └── 📄 sensores.js\n│\n├── 📁 docs/                              # Documentação Técnica\n│   ├── 📄 ARQUITETURA.md                 # Visão geral do sistema\n│   ├── 📄 MAPA_OPENSTREETMAP.md          # Docs do mapa\n│   ├── 📄 FLUXO_MEDICOES.md              # Fluxo de medições\n│   ├── 📄 SENSORES_TECNICO.md            # Detalhes técnicos\n│   ├── 📄 GUIA_USO.md                    # Manual do usuário\n│   └── 📄 TESTE_COM_DADOS_REAIS.md       # Guia de testes\n│\n└── 📁 .git/                              # Versionamento Git\n```\n\n## 🛠️ Tecnologias Utilizadas\n\n### Backend\n- **FastAPI** - Framework web assíncrono moderno\n- **Uvicorn** - Servidor ASGI\n- **Pydantic** - Validação de dados\n- **PyJWT** - Tokenização JWT\n- **Python 3.12** - Linguagem\n\n### Frontend\n- **HTML5** - Markup semântico\n- **CSS3** - Estilos responsivos (Grid/Flexbox)\n- **JavaScript Vanilla** - Zero dependências\n- **Leaflet.js v1.9.4** - Mapa interativo\n- **OpenStreetMap** - Tiles de mapa\n\n### Sensores\n- **Web Audio API** - Captura e análise de áudio\n- **getUserMedia API** - Acesso à câmera\n- **Canvas API** - Processamento de imagens\n\n### Banco de Dados\n- **Em-memória (Python dicts)** - Desenvolvimento\n- **MongoDB** - Produção (estrutura pronta)\n\n### DevOps\n- **Docker** - Containerização (template incluso)\n- **Git** - Versionamento\n\n## 📚 Documentação Técnica\n\nAcesse a documentação detalhada em `docs/`:\n\n- **[ARQUITETURA.md](./docs/ARQUITETURA.md)** - Visão geral da arquitetura e fluxos\n- **[MAPA_OPENSTREETMAP.md](./docs/MAPA_OPENSTREETMAP.md)** - Implementação do mapa com Leaflet.js\n- **[FLUXO_MEDICOES.md](./docs/FLUXO_MEDICOES.md)** - Fluxo detalhado de medições\n- **[SENSORES_TECNICO.md](./docs/SENSORES_TECNICO.md)** - Detalhes técnicos dos sensores\n- **[TESTE_COM_DADOS_REAIS.md](./docs/TESTE_COM_DADOS_REAIS.md)** - Guia completo de testes\n- **[GUIA_USO.md](./docs/GUIA_USO.md)** - Manual do usuário final\n\n## 🧪 Testando a Aplicação\n\n### Com Dados de Teste Pré-carregados\n\n```bash\n# Terminal 1: Backend com dados de teste\ncd estrutura-back\npython run_with_test_data.py\n\n# Terminal 2: Frontend\ncd frontend_teste\npython serve_frontend.py\n\n# Abrir browser\nopen http://localhost:3000\n```\n\n**Credenciais de Teste:**\n- Email: `ana@test.com` | Senha: `senha123`\n- Email: `carlos@test.com` | Senha: `senha123`\n- Email: `maria@test.com` | Senha: `senha123`\n\n### API Health Check\n\n```bash\ncurl http://localhost:8000/health | python3 -m json.tool\n```\n\n### Documentação Interativa da API\n\n```\nhttp://localhost:8000/docs\n```\n\n## 🔐 Segurança\n\n- ✅ JWT tokens para autenticação\n- ✅ Hash SHA256 para senhas (em produção, use bcrypt)\n- ✅ CORS habilitado para desenvolvimento\n- ✅ Validação de entrada com Pydantic\n- ✅ Limites de valor para sensores (dB: 0-120, Lux: 0-10000)\n\n**Para Produção:**\n- Configure `.env` com variáveis seguras\n- Use bcrypt com passlib\n- Configure CORS mais restritivo\n- Implemente rate limiting\n- Use HTTPS\n- Configure MongoDB com autenticação\n\n## 📊 Limites de Classificação (NBR/ABNT)\n\n### Ruído (em decibéis - dB)\n\n| Ambiente | Bom | Ok | Atenção | Ruim |\n|----------|-----|----|---------:|------:|\n| Restaurante | 0-45 | 45-50 | 50-55 | 55+ |\n| Biblioteca | 0-35 | 35-40 | 40-45 | 45+ |\n| Shopping | 0-50 | 50-55 | 55-60 | 60+ |\n| Hospital | 0-35 | 35-40 | 40-45 | 45+ |\n| Escritório | 0-45 | 45-50 | 50-55 | 55+ |\n\n### Luminosidade (em lux - Lux)\n\n| Ambiente | Bom | Ok | Atenção | Ruim |\n|----------|-----|----|---------:|------:|\n| Restaurante | 200-300 | 150-200 | 100-150 | 0-100 |\n| Biblioteca | 300-500 | 250-300 | 200-250 | 0-200 |\n| Escritório | 500-750 | 400-500 | 300-400 | 0-300 |\n\n## 🚧 Roadmap\n\n### v1.0 ✅\n- ✅ Autenticação e perfil de usuário\n- ✅ Mapa interativo com marcadores\n- ✅ Web Audio API para ruído\n- ✅ Camera API para luminosidade\n- ✅ Busca e filtro de locais\n- ✅ Registro manual\n\n### v1.1 🔄\n- 🔄 Persistência em MongoDB\n- 🔄 Calibração de sensores por usuário\n- 🔄 Histórico gráfico de medições\n- 🔄 Estatísticas por horário\n\n### v2.0 📋\n- 📋 App mobile (React Native/Flutter)\n- 📋 Notificações em tempo real\n- 📋 Comunidades por bairro\n- 📋 Relatórios para administradores\n- 📋 Integração com Google Places API\n\n## 🤝 Contribuindo\n\nContribuições são bem-vindas! Por favor:\n\n1. Fork o projeto\n2. Crie uma branch para sua feature (`git checkout -b feature/NovaFeature`)\n3. Commit suas mudanças (`git commit -m 'Adiciona NovaFeature'`)\n4. Push para a branch (`git push origin feature/NovaFeature`)\n5. Abra um Pull Request\n\n### Diretrizes\n- Código deve estar bem documentado\n- Testes devem passar\n- Siga a style guide do projeto\n- Atualize a documentação conforme necessário\n\n## 📝 Licença\n\nEste projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.\n\n## 👥 Autores\n\n- **Gabrielly Gomes** - Dev Backend\n- **Katiene Souza** - Dev Frontend\n- **Stefanni Nascimento** - UI Designer\n- **Jefferson Lima** - UX Designer\n- **Beatriz Ferreira** - Business\n- **Giovana** - Business\n\n\n## 📞 Suporte\n\n- 🐛 Encontrou um bug? [Abra uma issue](https://github.com/codeonthespectrum/sensorial_app/issues)\n- 💡 Tem uma sugestão? Comente em [Discussions](https://github.com/codeonthespectrum/sensorial_app/discussions)\n- 📧 Email: [suporte@codeospectrum.com](mailto:suporte@codeospectrum.com)\n\n## 🙏 Agradecimentos\n\n- OpenStreetMap pelos mapas\n- FastAPI pela excelente documentação\n- Comunidade autista por inspirar este projeto\n- Todos os contribuidores e testadores\n\n---\n\n**Desenvolvido com ❤️ para tornar o mundo mais acessível para neurodivergentes.**\n\n**Última atualização:** 21 de outubro de 2025\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeonthespectrum%2Fsensorial_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeonthespectrum%2Fsensorial_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeonthespectrum%2Fsensorial_app/lists"}