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.
- About
- Features
- Getting Started
- Development
- Technologies Used
- App Permissions
- Screenshots
- Project References
- Future enhancement
- Connect with me
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.
- 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
- 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
Please refer to the following guide for project setup.
Please refer to following wiki for coding style & conventions.
-
A bridge has been created to connect users to firebase server and stream chat server.
-
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
-
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.
-
For more details, please refer here.
- components
- config : Configuration used in the application
- pages : The Widgets of all the pages / screens in the application
- routes : Routes to navigate inside the app
- services : Services for user authentication and stream chat client
- main.dart : Entry point for the application
- Flutter
- Google Firebase for authentication and storage
- Stream Chat SDK for Chat functionality
- Jitsi Meet SDK for video meetings & conferences
- Other dependencies in
pubspec.yaml
Splash View | Welcome | Sign Up | Drawer |
---|---|---|---|
Start New Chat | Group Functionality | Sending Files | Chat Window |
---|---|---|---|
Meet View | Create Meet | Join Meet | Meet Chat |
---|---|---|---|
Fully responsive UI and customizable over multiple screen sizes.
Used Object Oriented Programming and Clean Code practices.
- Flutter API
- Stream Chat API Docs
- Pub.dev Api Reference
- Jitsi Meet
- Flutter Examples
- Undraw for using the images for UI
- Enabling Chat Lock feature
- Integrating swipe keyboard
- Integration of moderator
- Sending calendar invites for the meeting