Skip to content

Version 2 of the DatingApp developed with Flutter and Dart, now with Firebase integration for the mobile development discipline of the 5th semester of college.

Notifications You must be signed in to change notification settings

renanbreier/DatingApp-V2-FlutterProject

Repository files navigation

DatingApp V2 - Flutter Project

Dart Flutter Firebase

Um aplicativo de encontros completo desenvolvido com Flutter e Dart, utilizando o Firebase como backend para funcionalidades em tempo real.

🚀 Funcionalidades Implementadas

O aplicativo possui um fluxo de usuário robusto e diversas funcionalidades essenciais:

  • 📱 Autenticação de Usuários:

    • Cadastro e Login utilizando E-mail e Senha.
    • Integração completa com o Firebase Authentication.
    • Sistema de logout seguro que limpa a pilha de navegação.
  • 👤 Gestão de Perfis:

    • Criação de Perfil: Novos usuários são direcionados para uma tela para completar o perfil com informações essenciais.
    • Edição de Perfil: Usuários existentes podem acessar e editar suas informações a qualquer momento.
    • Foto de Perfil: Permite ao usuário tirar uma foto com a câmera e a salva localmente no dispositivo para persistência.
    • Dados Salvos: Nome, sobrenome, data de nascimento, orientação sexual, interesses e foto.
  • ❤️ Tela de Matches Dinâmica (MatchScreen):

    • Carrega perfis de usuários diretamente do Cloud Firestore.
    • Interface de cards com efeito de empilhamento e animações de swipe (arrastar para os lados).
    • Sistema de Filtro: Filtra os perfis exibidos com base na preferência de idade que o usuário salva na tela de configurações.
  • 💬 Sistema de Match e Chat em Tempo Real:

    • Lógica de "Like": Ao curtir um perfil, uma sala de chat é criada instantaneamente.
    • Lista de Conversas: A tela de chats exibe todas as conversas ativas, carregadas em tempo real do Firestore.
    • Chat Individual: Tela de conversa funcional que salva e exibe mensagens em tempo real.
    • Opções de Interação: O usuário pode Remover o Match ou Bloquear (ação fictícia), o que apaga a conversa e o "like" do banco de dados.
  • ⚙️ Configurações e Preferências:

    • Tela de Configurações: Menu com acesso a várias funcionalidades, incluindo Logout.
    • Tela de Preferências: Permite ao usuário definir a faixa de idade desejada para os matches, salvando essa preferência no Firestore.
  • 🔔 Notificações:

    • Envia uma notificação local quando um "like" é registrado.

🛠️ Tecnologias Utilizadas

  • Framework: Flutter
  • Linguagem: Dart
  • Backend (BaaS): Firebase
    • Firebase Authentication: Para gestão de usuários.
    • Cloud Firestore: Como banco de dados NoSQL em tempo real para perfis, likes, chats e preferências.
  • Principais Pacotes:
    • firebase_core, firebase_auth, cloud_firestore
    • image_picker (para acesso à câmera)
    • path_provider, shared_preferences (para armazenamento local da foto de perfil)
    • flutter_local_notifications (para notificações)

⚙️ Configuração do Ambiente

Siga os passos abaixo para rodar o projeto localmente.

Pré-requisitos

1. Configuração do Firebase

  1. Crie um novo projeto no Firebase Console.
  2. No seu projeto Firebase, vá para a seção Authentication > Sign-in method e ative o provedor "E-mail/senha".
  3. Vá para a seção Cloud Firestore e clique em "Criar banco de dados". Inicie em Modo de Teste.
  4. Vá para a seção Storage e clique em "Primeiros passos" para ativar o armazenamento de arquivos.
  5. Na raiz do seu projeto Flutter no terminal, rode o comando flutterfire configure para conectar seu app ao projeto Firebase. Isso criará o arquivo lib/firebase_options.dart.

2. Configuração do Projeto Local

# Clone o repositório
git clone [https://github.com/renanbreier/DatingApp-V2-FlutterProject.git](https://github.com/renanbreier/DatingApp-V2-FlutterProject.git)

# Entre no diretório do projeto
cd DatingApp-V2-FlutterProject

# Instale as dependências
flutter pub get

3. Executando o App

# Rode o aplicativo em um emulador ou dispositivo físico
flutter run

Importante: Ao rodar pela primeira vez, a MatchScreen pode apresentar um erro no Debug Console pedindo para criar um índice do Firestore. Apenas clique no link fornecido no log de erro, crie o índice no console do Firebase e reinicie o app após alguns minutos.

✒️ Autores

  • Renan de Oliveira Breier - GitHub
  • Luiza Rodrigues Wenceslau Nanni - GitHub
  • Angelo Eduardo Soares Zovaro - GitHub
  • Cauã Barcellos Moreto - GitHub
  • Gustavo de Oliveira Silva - GitHub

About

Version 2 of the DatingApp developed with Flutter and Dart, now with Firebase integration for the mobile development discipline of the 5th semester of college.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published