Skip to content

rahulmangla28/Alfaaz

Repository files navigation

Alfaaz

Alfaaz is a all-in-one android app for connecting with people around you.

With alfaaz, you can chat and meet new people with similar interests, whether you're looking for friends, partners, or professional connections.

📜 Contents

👀 About

Alfaaz is a video conferencing application with rich integrated chat feature where one can discuss on topics and connect with other members. It implements the following features:

  • Instant Messaging: Communicate with others and have shared resources in an organised manner. Send GIF's, emojis, files, media in one to one or group chat.
  • Online Meetings: Connect with your mates easily by just clicking a button in the chat window.
  • Collaborate: Easily locate shared files, media in real time.

✨ Features

🤐 Chat Functionality

  • Create Group / personal chats outside a meeting
  • Pin messages.
  • Delete / edit messages.
  • Photo, Audio, Videos, etc.
  • GIFs via GIPHY
  • Chat reactions & Emojis.
  • Reply on threads.
  • Integrated Video rooms.
  • User mentions.
  • Mute Conversations

📹 Video Conferencing Functionality

  • Toggle Video / Audio
  • Share Screen
  • Anonymous Join In
  • Raise Hand
  • Set Meeting Password
  • Share files
  • In meet private chat
  • Record the meeting
  • Share Links
  • Minimised mode

🚀 Getting Started

Project Setup

Please refer to the following guide for project setup.

Coding Style & Conventions

Please refer to following wiki for coding style & conventions.

Development

Codebase Overview

  1. A bridge has been created to connect users to firebase server and stream chat server. image

  2. There are three important things to notice that are common to all Flutter application using StreamChat:

    • The Dart API client is initialized with your API Key
    • The current user is set by calling connectUser on the client
    • The client is then passed to the top-level StreamChat widget
  3. The top level stream chat widget is returned in home_page.dart. StreamChat is an inherited widget and must be the parent of all Chat related widgets 4.To add data persistence ChatPersistenceClient is extended and passed as an instance to the StreamChatClient.

  4. For more details, please refer here.

Directory structure of lib

📑 Technologies Used

🔐 App Permissions

  1. Internet
  2. Camera
  3. Microphone
  4. Storage

📸 Screenshots

Splash View Welcome Sign Up Drawer
Start New Chat Group Functionality Sending Files Chat Window
Meet View Create Meet Join Meet Meet Chat

💻 UI

Fully responsive UI and customizable over multiple screen sizes.

📝 Coding Style

Used Object Oriented Programming and Clean Code practices.

📋 Project References

💡 Future Enhancement

  • Enabling Chat Lock feature
  • Integrating swipe keyboard
  • Integration of moderator
  • Sending calendar invites for the meeting

🤝 Connect with me

image image