Conectando pessoas que precisam de serviços com quem pode realizá-los.
✨ Funcionalidades • 🚀 Começando • 🛠️ Tecnologias • 📂 Estrutura • 🤝 Contribuição
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!
| 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 |
Certifique-se de ter instalado em sua máquina:
- Git
- Node.js 22 LTS+
- Android Studio (com variável de ambiente configurada)
- Java JDK 17
📺 Tutorial de configuração do Android Studio: Assistir no YouTube
-
Clone o repositório
git clone https://github.com/ilanzgx/toPrecisando-mobile.git cd toPrecisando-mobile -
Mude para a branch de desenvolvimento
git checkout -b dev origin/dev
-
Instale as dependências
npm install
-
Configure as variáveis de ambiente
Crie um arquivo
.envna 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. -
Execute o projeto
# Primeira execução (gera a pasta android) npm run android # Desenvolvimento diário npm run start
| 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 |
📦 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
# 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| 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 |
-
Faça um fork do repositório
-
Crie uma branch a partir da
devgit checkout -b feature/sua-feature dev
-
Faça suas alterações e commit
git add . git commit -m "feat: adiciona nova funcionalidade"
-
Push para a branch
git push origin feature/sua-feature
-
Abra um Pull Request para a branch
dev
| Desenvolvedor | GitHub |
|---|---|
| Ilan Fonseca | @ilanzgx |
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