{"id":29640783,"url":"https://github.com/sans-script/the-lus-project","last_synced_at":"2025-07-21T21:05:14.368Z","repository":{"id":302123651,"uuid":"1010928515","full_name":"sans-script/the-lus-project","owner":"sans-script","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-30T17:03:30.000Z","size":157,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-30T18:23:03.095Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://the-lus-project.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/sans-script.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}},"created_at":"2025-06-30T03:51:09.000Z","updated_at":"2025-06-30T17:03:34.000Z","dependencies_parsed_at":"2025-06-30T18:23:10.151Z","dependency_job_id":"cae9ab1b-1bcb-421d-9f88-308de81cfbd9","html_url":"https://github.com/sans-script/the-lus-project","commit_stats":null,"previous_names":["sans-script/the-lus-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sans-script/the-lus-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sans-script%2Fthe-lus-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sans-script%2Fthe-lus-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sans-script%2Fthe-lus-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sans-script%2Fthe-lus-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sans-script","download_url":"https://codeload.github.com/sans-script/the-lus-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sans-script%2Fthe-lus-project/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266379291,"owners_count":23920157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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-07-21T21:05:04.555Z","updated_at":"2025-07-21T21:05:14.359Z","avatar_url":"https://github.com/sans-script.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LUS - Localizador de Unidades de Saúde\n\nUm sistema web moderno para localização e navegação até unidades de saúde, desenvolvido com Next.js 15, TypeScript e integração com Google Maps. O LUS permite aos usuários encontrar rapidamente unidades de saúde próximas, visualizar informações detalhadas e gerenciar favoritos.\n\n## ✨ Características Principais\n\n- Interface moderna e responsiva com suporte a modo escuro/claro\n- Integração com Google Maps para localização\n- Sistema de busca inteligente por proximidade e tipo de unidade\n- Cálculo de rotas otimizadas para diferentes meios de transporte\n- Sistema de favoritos personalizado para cada usuário\n- Detalhes completos das unidades incluindo fotos, avaliações e contatos\n\n## 🚀 Tecnologias\n\n- **Next.js 15** - Framework React com App Router\n- **React 19** - Biblioteca para interfaces de usuário\n- **TypeScript** - Tipagem estática\n- **Tailwind CSS** - Estilização utilitária\n- **Shadcn/ui** - Componentes de interface baseados em Radix UI\n- **Google Maps API** - Mapas e localização\n- **React Hook Form** - Gerenciamento de formulários\n- **Zod** - Validação de schemas\n- **Lucide React** - Ícones\n- **Next Themes** - Gerenciamento de temas (claro/escuro)\n- **Sonner** - Sistema de notificações/toasts\n- **Recharts** - Gráficos e visualizações\n- **Vaul** - Componente drawer para mobile\n\n## 📋 Funcionalidades\n\n- 🗺️ **Mapa interativo** com localização em tempo real\n- 🏥 **Busca de unidades de saúde** por proximidade\n- 🚗 **Rotas otimizadas** (carro, transporte público, a pé)\n- ⭐ **Sistema de favoritos** para unidades preferidas\n- 📱 **Design responsivo** para mobile e desktop\n- 🌙 **Modo escuro/claro** alternável\n- 📍 **Detalhes das unidades** com fotos e informações\n- 🔐 **Sistema de autenticação** de usuários\n\n## 🛠️ Pré-requisitos\n\n- **Node.js** 18.0 ou superior\n- **pnpm** 8.0 ou superior\n- **Chave da Google Maps API** com os seguintes serviços habilitados:\n  - Maps Embed API\n  - Maps JavaScript API\n  - Places API (New)\n  - Distance Matrix API\n\n## 🚀 Instalação e Execução\n\n### 1. Clone o repositório\n\n```bash\ngit clone git@github.com:KayroBrasil/desafio5_trilhas2B_frontend.git cd the-lus-project\n```\n\n### 2. Instale as dependências\n\n```bash\npnpm install\n```\n\n### 3. Configure as variáveis de ambiente\n\nCrie um arquivo `.env.local` na raiz do projeto:\n\n```bash\ncp .env.example .env.local\n```\n\nEdite o arquivo `.env.local` e adicione suas configurações:\n\n```env\n# Chave de API do Google Maps\nNEXT_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here\n# URL base da API utilizada pela aplicação\nNEXT_PUBLIC_API_BASE_URL=base_url_here\n# Editor padrão para o React (opcional)\nREACT_EDITOR=atom\n```\n\n### 4. Execute o projeto em desenvolvimento\n\n```bash\npnpm dev\n```\n\nO aplicativo estará disponível em `http://localhost:3000`\n\n## 🗂️ Estrutura do Projeto\n\n```\nthe-lus-project/\n├── app/                        # App Router (Next.js 15)\n│   ├── auth/                   # Páginas de autenticação\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/ui)\n│   ├── auth-form.tsx           # Formulário de autenticação\n│   ├── favorites-list.tsx      # Lista de favoritos\n│   ├── favorites-modal.tsx     # Modal de favoritos\n│   ├── health-unit-details.tsx # Detalhes da unidade\n│   ├── health-unit-locator.tsx # Localizador principal\n│   ├── theme-provider.tsx # Provedor de tema\n│   ├── theme-toggle.tsx        # Alternador de tema\n│   └── user-header.tsx         # Cabeçalho do usuário\n├── hooks/                      # Custom React Hooks\n│   ├── use-favorites.ts        # Hook de favoritos\n│   ├── use-mobile.tsx          # Hook de detecção mobile\n│   └── use-toast.ts            # Hook de toast/notificações\n├── lib/                        # Utilitários e configurações\n│   ├── api.ts                  # Configurações de API\n│   ├── auth.ts                 # Autenticação\n│   ├── health-units.ts         # Dados das unidades de saúde\n│   └── utils.ts                # Funções utilitárias\n├── public/                     # Arquivos estáticos\n│   ├── placeholder-logo.png\n│   ├── placeholder-logo.svg\n│   ├── placeholder-user.jpg\n│   └── placeholder.svg\n├── styles/                     # Estilos adicionais\n│   └── globals.css             # Estilos globais adicionais\n├── .env.example                # Exemplo de variáveis de ambiente\n├── .env.local                  # Variáveis de ambiente (não versionado)\n├── next.config.mjs             # Configuração do Next.js\n├── tailwind.config.ts          # Configuração do Tailwind CSS\n├── tsconfig.json               # Configuração do TypeScript\n├── components.json             # Configuração do Shadcn/ui\n└── package.json                # Dependências e scripts\n```\n\n## 🔑 Configuração da Google Maps API\n\n1. Acesse o [Google Cloud Console](https://console.cloud.google.com/)\n2. Crie um novo projeto ou selecione um existente\n3. Ative as seguintes APIs:\n   - Maps Embed API\n   - Maps JavaScript API\n   - Places API (New)\n   - Distance Matrix API\n4. Crie uma chave de API\n5. Configure as restrições de domínio (recomendado)\n6. Adicione a chave no arquivo `.env.local`:\n   ```env\n   NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=sua_chave_aqui\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsans-script%2Fthe-lus-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsans-script%2Fthe-lus-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsans-script%2Fthe-lus-project/lists"}