Skip to content

Front do app mobile android para simplificar a vida do corretor de imóveis, oferecendo uma ferramenta móvel especializada que vai além dos CRMs. Um projeto Pipoca Ágil.

Notifications You must be signed in to change notification settings

warlleyrocha/imobi-facil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

354 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 ImobiFácil

📋 Sobre o Projeto

O ImobiFácil é uma aplicação mobile desenvolvida com React Native e Expo, projetada especificamente para corretores de imóveis gerenciarem seus negócios de forma eficiente e profissional. A aplicação oferece uma interface intuitiva e funcionalidades completas para gestão de propriedades, clientes e relacionamento comercial.

🎯 Funcionalidades Principais

🔐 Autenticação e Perfil

  • Login com Google: Autenticação OAuth integrada com backend
  • Cadastro de Corretor: Formulário completo com validação de dados
  • Perfil Profissional: Gestão de informações pessoais e profissionais
  • Verificação de Código: Sistema de verificação por email
  • Persistência de Sessão: Login automático com armazenamento local

🏘️ Gestão de Imóveis

  • Cadastro de Propriedades: Formulário completo com:
    • Informações básicas (título, tipo, finalidade, preço, área)
    • Localização detalhada (CEP, endereço, bairro, cidade, estado)
    • Descrição personalizada
    • Upload de fotos
  • Listagem de Imóveis: Visualização organizada de todas as propriedades
  • Edição de Propriedades: Modificação de dados existentes
  • Organização em Pastas: Criação de pastas personalizadas para atendimento (feature futura)

📊 Dashboard e Estatísticas

  • Resumo Semanal: Métricas importantes como:
    • Visitas agendadas
    • Novos contatos
    • Documentos pendentes
  • Acesso Rápido: Botões diretos para principais funcionalidades
  • Notificações: Sistema de alertas e lembretes (feature futura)

👥 Gestão de Clientes (feature futura)

  • Cadastro de Clientes: Formulário para novos clientes
  • Minhas Pastas: Organização de clientes por pastas
  • Histórico de Atendimento: Acompanhamento de interações

📅 Agenda e Compromissos (feature futura)

  • Agenda Inteligente: Agendamento de visitas e compromissos
  • Controle de Rotina: Organização completa da agenda profissional

💬 Comunicação (feature futura)

  • Chat Integrado: Comunicação direta com clientes
  • Relacionamento Ativo: Manutenção de contato contínuo

🛠️ Tecnologias Utilizadas

Core Framework

  • React Native 0.81.4: Framework principal para desenvolvimento mobile
  • Expo 54.0.13: Plataforma de desenvolvimento e deploy
  • TypeScript 5.9.2: Tipagem estática para maior segurança

Navegação e Roteamento

  • Expo Router 6.0.12: Sistema de roteamento baseado em arquivos
  • React Navigation 7.0.3: Navegação entre telas

Interface e Estilização

  • NativeWind 4.1.23: Tailwind CSS para React Native
  • Tailwind CSS 3.4.0: Framework de estilização utilitária
  • React Native SVG 15.12.1: Suporte a ícones SVG
  • Expo Vector Icons 15.0.2: Biblioteca de ícones
  • Expo Blur 15.0.7: Efeitos visuais

Formulários e Validação

  • React Hook Form 7.58.1: Gerenciamento de formulários
  • Zod 3.25.67: Validação de schemas
  • React Native Element Dropdown 2.12.4: Componentes de seleção

Autenticação e Armazenamento

  • Expo Auth Session 7.0.8: Gerenciamento de sessões OAuth
  • Expo Web Browser 15.0.8: Navegador in-app para autenticação
  • AsyncStorage 2.2.0: Armazenamento local

Mídia e Recursos

  • Expo Image Picker 17.0.8: Seleção de imagens
  • Expo Location 19.0.7: Serviços de localização
  • Expo Constants 18.0.9: Constantes da aplicação
  • Expo Crypto 15.0.7: Funções criptográficas

Comunicação com Backend

  • Axios 1.11.0: Cliente HTTP para comunicação com API
  • Expo Dev Client 6.0.15: Cliente de desenvolvimento

Desenvolvimento e Qualidade

  • ESLint 9.25.1: Análise estática de código
  • Prettier 3.2.5: Formatação de código
  • Jest 29.7.0: Framework de testes
  • SonarQube: Análise de qualidade de código

🔗 Integração com Backend

Fluxo OAuth Integrado

O sistema de autenticação é totalmente integrado com o backend:

  1. Inicialização: Frontend redireciona para endpoint do backend (/auth/google)
  2. Processamento: Backend gerencia todo o fluxo OAuth com Google
  3. Callback: Backend retorna usuário e token via deep link
  4. Armazenamento: Frontend salva dados localmente via AsyncStorage

📱 Estrutura do Projeto

imobi-facil/
├── app/
│   ├── (auth)/                                 # Rotas autenticadas
│   │   ├── corretor/                           # Área do corretor
│   │   │   ├── (tabs)/                         # Navegação por abas
│   │   │   │   ├── imoveis/                    # Gestão de imóveis
│   │   │   │   ├── agenda.tsx
│   │   │   │   ├── chat.tsx
│   │   │   │   └── home.tsx                    # Tela inicial
│   │   │   ├── profile/                        # Perfil do corretor
│   │   │   └── signup/                         # Página de cadastro
│   │   ├── onboard.tsx                         # Tutorial inicial
│   │   └── select-profile.tsx                  # Seleção de perfil
│   ├── (public)/                               # Rotas públicas
│   │   └── sign-in.tsx                         # Tela de login
│   ├── _layout.tsx                             # Layout raiz
├── components/                                 # Componentes reutilizáveis
│   ├── Profile/                                # Componentes de perfil
│   ├── forms/                                  # Componentes de formulário
│   ├── layouts/                                # Layouts e seções
│   │   ├── Sections/
│   │   └── Header.tsx
│   └── ui/                                     # Componentes de interface
├── contexts/                                   # Contextos React
│   └── authContext.tsx                         # Contexto de autenticação
├── hooks/                                      # Custom hooks
│   ├── useGoogleAuth.ts                        # Hook de autenticação Google
│   └── usePropertyManagement.tsx               # Hook de gestão de imóveis
├── services/                                   # Serviços e APIs
│   ├── api.ts                                  # Configuração da API
│   └── googleAuth.service.ts                   # Serviço de autenticação
├── types/                                      # Definições TypeScript
└── utils/                                      # Funções utilitárias


🚀 Como Executar o Projeto

Pré-requisitos

  • Node.js 18+ instalado
  • Expo CLI instalado globalmente
  • Android Studio (para Android) ou Xcode (para iOS)
  • Backend rodando na porta 3000

Instalação

  1. Clone o repositório
git clone <url-do-repositorio>
cd imobi-facil
  1. Instale as dependências
npm install
  1. Configure o backend
# Certifique-se de que o backend está rodando
# Backend deve estar configurado com Google OAuth
  1. Execute o projeto
# Desenvolvimento
npm run dev

# Android
npm run android

# iOS
npm run ios

# Web
npm run web

Scripts Disponíveis

# Desenvolvimento
npm run dev              # Inicia o servidor de desenvolvimento
npm run dev:client       # Inicia com dev client
npm start               # Inicia o Expo

# Build
npm run android         # Build para Android
npm run ios             # Build para iOS
npm run web             # Build para Web
npm run prebuild        # Prepara build nativo

# Qualidade de Código
npm run lint            # Executa ESLint
npm run format          # Formata código com Prettier
npm run test            # Executa testes
npm run test:coverage   # Testes com cobertura

# SonarQube
npm run sonar:scan      # Análise de qualidade
npm run sonar:coverage  # Análise com cobertura

🔐 Sistema de Autenticação

Fluxo OAuth com Backend

  1. Inicialização: Usuário clica em "Login com Google"
  2. Redirecionamento: App redireciona para backend (/auth/google)
  3. Processamento: Backend gerencia OAuth com Google
  4. Callback: Backend retorna via deep link com dados do usuário
  5. Armazenamento: Frontend salva dados localmente
  6. Navegação: Usuário é direcionado para área autenticada

Gerenciamento de Sessão

  • AsyncStorage: Armazenamento persistente de dados do usuário
  • Restauração: Login automático ao abrir o app
  • Logout: Limpeza completa de dados locais

🏘️ Gestão de Imóveis

Cadastro de Propriedades

  • Informações Básicas: Título, tipo, finalidade (venda/aluguel), preço, área
  • Localização: CEP, endereço completo, bairro, cidade, estado
  • Descrição: Campo de texto livre para detalhes
  • Mídias: Upload de fotos e vídeos
  • Validação: Validação completa com Zod

Armazenamento Local

  • AsyncStorage: Dados temporários até sincronização com backend
  • Estrutura: Array de objetos com ID único
  • Operações: CRUD completo (Create, Read, Update, Delete)

📊 Dashboard do Corretor

Métricas Principais

  • Visitas Agendadas: Contador de visitas programadas
  • Novos Contatos: Novos clientes em potencial
  • Documentos Pendentes: Documentação em análise

Acesso Rápido

  • Cadastrar Imóvel: Acesso direto ao formulário
  • Meus Imóveis: Lista de propriedades
  • Cadastrar Cliente: Formulário de novo cliente
  • Minhas Pastas: Organização por pastas

🎨 Design System

Cores Principais

  • Primária: Azul corporativo para elementos principais
  • Secundária: Cinza para textos e elementos secundários
  • Sucesso: Verde para ações positivas
  • Aviso: Amarelo para alertas
  • Erro: Vermelho para erros

Tipografia

  • Inter: Fonte principal para textos
  • Mulish: Fonte para títulos e destaques
  • Tamanhos: Sistema escalável de 12px a 32px

Componentes

  • Botões: Estilos consistentes para diferentes ações
  • Formulários: Campos padronizados com validação
  • Cards: Layouts para exibição de informações
  • Modais: Popups para confirmações e formulários

📱 Compatibilidade

Plataformas Suportadas

  • Android: 6.0+ (API level 23+)

Padrões de Código

  • TypeScript: Tipagem estática obrigatória
  • ESLint: Regras de linting configuradas
  • Prettier: Formatação automática
  • Conventional Commits: Padrão de commits
  • Análise com sonar: Análise de código antes de fazer o merge

ImobiFácil - Um projeto feito através do programa Pipoca Ágil.

About

Front do app mobile android para simplificar a vida do corretor de imóveis, oferecendo uma ferramenta móvel especializada que vai além dos CRMs. Um projeto Pipoca Ágil.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •