Skip to content

O "Tô Precisando" é um aplicativo que conecta pessoas que precisam de um serviço com pessoas que o oferecem.

License

Notifications You must be signed in to change notification settings

ilanzgx/toPrecisando-mobile

Repository files navigation

Tô Precisando Logo

Tô Precisando

Conectando pessoas que precisam de serviços com quem pode realizá-los.

Expo React Native TypeScript Supabase

Build Status Tests License

✨ Funcionalidades🚀 Começando🛠️ Tecnologias📂 Estrutura🤝 Contribuição


📖 Sobre o Projeto

O Tô Precisando é um aplicativo mobile que conecta pessoas que precisam de um serviço com pessoas que o oferecem. A plataforma permite que usuários publiquem "vagas" de serviços que necessitam, e outros usuários podem se candidatar para realizar essas tarefas.

💡 Pense em um "Uber dos serviços" - você precisa de um eletricista, encanador, professor particular ou qualquer outro profissional? Publique sua necessidade e encontre quem pode te ajudar!

✨ Funcionalidades

Funcionalidade Descrição
🔐 Autenticação Login com e-mail/senha, Google e Facebook
📝 Publicação de Vagas Crie, edite e exclua vagas de serviços
🔍 Busca Inteligente Encontre vagas por categoria, localização ou palavras-chave
📤 Candidaturas Candidate-se às vagas que te interessam
👤 Perfil Personalizado Edite nome, foto, localização e situação profissional
🌙 Temas Suporte a tema claro, escuro e automático do sistema
💬 Mensagens Converse diretamente com contratantes
💬 Chat em tempo real Comunicação instantânea com notificações em tempo real
❤️ Favoritos Salve vagas para visualizar depois
🚩 Denúncias Reporte vagas fraudulentas ou inadequadas

🚀 Começando

Pré-requisitos

Certifique-se de ter instalado em sua máquina:

📺 Tutorial de configuração do Android Studio: Assistir no YouTube

Instalação

  1. Clone o repositório

    git clone https://github.com/ilanzgx/toPrecisando-mobile.git
    cd toPrecisando-mobile
  2. Mude para a branch de desenvolvimento

    git checkout -b dev origin/dev
  3. Instale as dependências

    npm install
  4. Configure as variáveis de ambiente

    Crie um arquivo .env na raiz do projeto baseado no .env.example:

    SUPABASE_URL=sua_url_aqui
    SUPABASE_KEY=sua_chave_aqui
    DATABASE_PROVIDER=supabase

    ⚠️ Solicite as credenciais do Supabase ao administrador do projeto.

  5. Execute o projeto

    # Primeira execução (gera a pasta android)
    npm run android
    
    # Desenvolvimento diário
    npm run start

🛠️ Tecnologias

Categoria Tecnologia
📱 Framework Expo SDK 53
🧭 Navegação Expo Router (File-based routing)
📝 Linguagem TypeScript 5.8
🎨 Estilização NativeWind + Gluestack UI
📋 Formulários React Hook Form + Zod
🗄️ Backend Supabase
📦 Estado Global Zustand
🧪 Testes Jest + Testing Library
📲 OTA Updates Expo Updates

📂 Estrutura do Projeto

📦 src
 ┣ 📂 app                    # Rotas da aplicação (Expo Router)
 ┃ ┣ 📂 (protected)          # Rotas que necessitam de autenticação
 ┃ ┗ 📂 (public)             # Rotas públicas (login, registro)
 ┣ 📂 components             # Componentes reutilizáveis
 ┃ ┣ 📂 animations           # Componentes animados
 ┃ ┣ 📂 core                 # Componentes de negócio
 ┃ ┗ 📂 ui                   # Componentes de UI (Gluestack)
 ┣ 📂 config                 # Configurações de serviços
 ┣ 📂 errors                 # Classes de erros customizados
 ┣ 📂 lib                    # Providers externos (Supabase)
 ┣ 📂 resources              # Lógica de negócio
 ┃ ┣ 📂 user                 # Entidade, serviço e DTOs de usuário
 ┃ ┣ 📂 vaga                 # Entidade, serviço e DTOs de vagas
 ┃ ┗ 📂 ...                  # Outros recursos
 ┣ 📂 screens                # Telas da aplicação
 ┣ 📂 stores                 # Estado global (Zustand)
 ┗ 📂 utils                  # Funções utilitárias

🧪 Testes

# Executar todos os testes
npm run test

# Testes unitários
npm run test:unit

# Testes de integração
npm run test:integration

# Testes com cobertura
npm run test:coverage

🔄 Scripts Disponíveis

Script Descrição
npm run start Inicia o servidor de desenvolvimento Expo
npm run android Compila e executa no Android
npm run ios Compila e executa no iOS
npm run test Executa todos os testes
npm run test:unit Executa apenas testes unitários
npm run test:integration Executa apenas testes de integração
npm run build:android Gera build de produção Android
npm run update:preview Envia OTA update para preview
npm run update:production Envia OTA update para produção

🤝 Contribuição

Fluxo de Contribuição

  1. Faça um fork do repositório

  2. Crie uma branch a partir da dev

    git checkout -b feature/sua-feature dev
  3. Faça suas alterações e commit

    git add .
    git commit -m "feat: adiciona nova funcionalidade"
  4. Push para a branch

    git push origin feature/sua-feature
  5. Abra um Pull Request para a branch dev


👥 Time

Desenvolvedor GitHub
Ilan Fonseca @ilanzgx

📄 Licença

Este projeto é licenciado sob a GNU Affero General Public License v3.0 (AGPLv3). Isso significa que qualquer pessoa que modificar ou utilizar este software para oferecer um serviço (SaaS) deve disponibilizar o código-fonte dessas modificações. Veja o arquivo LICENSE para mais detalhes.


Feito com ❤️ pelo time Tô Precisando

⬆️ Voltar ao topo

About

O "Tô Precisando" é um aplicativo que conecta pessoas que precisam de um serviço com pessoas que o oferecem.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •