
Log in with phone OTP, capture and crop a photo, set your name, chat with ChatGPT, generate images from prompts, and manage profiles, posts, and dark mode with speech features.
Set up a Flutter project in Android Studio with Flutter 3.7, install provider and shared preferences, and build a home screen with Scaffold and Chat GPT app bar.
Create light and dark themes with a MyThemes class and a static theme data method driven by isDarkTheme. Configure scaffold background, primary, dividers, cards, canvas, brightness, and button color schemes.
Create a flutter theme provider with change notifier and provider, persist theme choice using shared preferences, and apply dynamic theming across the app via a consumer-wrapped material app.
Toggle light and dark themes via the app bar, with icons updating to reflect the current theme, while saving and loading the choice with shared preferences and a provider.
Implement a bottom navigation bar on the home screen with three tabs—chat, posts, and profile—controlled by a selected index and setState, for both light and dark themes.
Prepare the login UI by adding packages for country picker, input fields, and a rounded loading button. Then organize assets under assets/images and update the code to use them.
Design a Flutter registration screen by creating an authentication directory, a stateful registration screen with a decorated avatar, and an asset manager to load the OpenAI logo and user icon.
Build a Flutter registration screen with a country picker showing flag emoji and country code, styled borders and padding, and a rounded loading button for login.
Develop an otp screen user interface in Flutter by reusing registration scaffold, adding a six-digit pin input with a pin package and Firebase, and wiring navigation to the next screen.
Develop a user information screen in Flutter, switch to deep purple, implement a circular avatar with camera, and add name and phone text fields with controllers; prepare Firebase integration.
connect a flutter project to firebase by creating a firebase project, installing the cli, and configuring firebase options; then add and initialize firebase_core, firebase_auth, firebase_storage, and cloud_firestore.
Connects a user to Firebase by building an authentication provider for phone sign-in, manages loading and success states, handles errors, and navigates to the OTP screen.
Implement sign in with phone on the registration screen, forming the number with country code via the authentication provider. Validate input with a check mark and a suffix icon.
Learn to sign in a user with phone authentication on Firebase, enable test numbers, secure Firestore and storage with authenticated access, and add SHA one and SHA two five six fingerprints for app signing.
Wire the otp screen to accept a verification id and sms code, verify otp with the authentication provider, show loading, and navigate to the user information screen on success.
Explore how OTP screen toggles loading and isSuccessful states, showing a circular indicator and, on success, a green circle with a white done icon, navigating to the user information screen.
Learn to implement a Flutter Firebase user information screen, retrieve the signed-in phone number, and configure image picker and image crop with iOS and Android permissions.
Develop a reusable Flutter image picker utility that selects from camera or gallery, crops the image, and updates the user information screen, with error handling and a source selection dialog.
Implement an image picker dialog on the user information screen that offers camera or gallery options, uses icons and InkWell taps to select an image, and dismisses after selection.
Develop a user model for Firebase integration with fields like uid, name, profile pic, date joined, last seen, and isOnline, including toMap and fromMap methods and Firestore and storage references.
Upload a user profile image to Firebase Storage, obtain the download URL, and save the user data to Firestore (uid, last scene, is online) with loading state and snackbar feedback.
Save user data to firestore using the auth provider and user model. Validate name length, handle image upload, and navigate to home screen.
Explore robust user authentication flows in a Flutter app with Firebase, including sign-up, OTP handling, and saving sign-in state with shared preferences to skip setup on restart.
Implement sign-out functionality within the profile screen by integrating an authentication provider, updating app bar navigation, and routing to the login or registration screen after logging out.
Learn to update user data in Firestore after OTP verification by checking user existence, syncing data to shared preferences, and navigating to home.
Retrieve current user data from Firestore, save results to shared preferences, update signed-in status, and navigate to home for existing users or user info for new users.
Design and implement a landing screen that checks user authentication, loads data from shared preferences, and navigates to the home screen or registration screen in a Flutter app.
Learn to implement a chat screen in a Flutter app using stream builder with cloud firestore, handle sending and receiving messages, and integrate chat flow with ChatGPT.
Implement a bottom chat field with a text input and send button in a Flutter app, including a text editing controller and theme-aware colors for dark and light modes.
Build and wire a chat provider in Flutter to send messages to Firebase Firestore and forward them to ChatGPT using a UUID, while managing is typing and is text states.
Set up a real-time chat stream by renaming the Firestore chat collection and implementing a chat provider that returns a stream by user uid for the chat list.
Learn to build a Flutter ChatGPT API service that sends messages to the model and returns text answers or image URLs, using HTTP and a URL with an API key.
Handle image generation errors and parse responses from the DALL-E API within a Flutter, Firebase, and ChatGPT app, implementing robust error handling and data extraction.
Experiment with DALL-E image generation in a Flutter app, test image versus text responses, configure the model, and display images through Firestore-backed chat alongside progress indicators.
Learn to save ChatGPT responses to Firestore for an image sharing app, display a loading indicator during typing, and order messages by message time to present a correct chat history.
Enhance the flutter chat widget for ChatGPT and DALL-E by preventing duplicate sends during loading, displaying typing indicators, and implementing a themed, avatar-aware UI.
Display ChatGPT responses in a Flutter chat widget, rendering text or image outputs from Firestore using an isText flag and image.network, with auto-scroll and keyboard handling.
Add a toggle to switch between text and image output for DALL-E generation, wiring a text-mode boolean and UI updates with a chatgpt icon and theme-aware colors.
Learn to implement a chat widget in Flutter by using a scroll controller and focus node to auto-scroll and manage focus, handle text submission, and optimize image loading with caching.
Learn to save Dall-E generated images to Firebase storage, then store their download URLs in Firestore, using random image names, http fetch, and app document directory to handle image files.
compress the generated image before saving it to firestore using a flutter image compress package, setting quality to 90 and removing rotation to drastically reduce file size and improve storage.
Build a flutter cached network image system with a profile image cache manager, a generated image cache manager, using flutter cache manager, caching 20 and 100 items for five days.
Develop speech to text and text to speech features, manage unique avatar keys to fix image caching, and toggle mic or send button while enabling proper permissions.
Integrate Lottie animations for a listening indicator in a Flutter app, manage the listening state via a chat provider, and send speech-to-text to Firestore with a ChatGPT reply.
Add text-to-speech to the flutter app using 11 Labs API or a flutter package, enabling ChatGPT to speak back with a human-like voice and customizable rate, pitch, volume, and language.
Implement and test a text-to-speech toggle in the Flutter chat app by wiring a speech status switch to the chat provider and validating the should-speak logic on the profile screen.
Build a Flutter profile screen that displays the user name and phone, includes account settings and a theme toggle, and uses a logout confirmation dialog.
Implement three buttons on the user profile screen with a reusable widget, style follower and share text, and set up dynamic data retrieval via the 11 labs API in Flutter.
Integrate 11 labs speech synthesis by configuring api key, base url, and voice id; construct text-to-speech requests and handle audio bytes for playback.
Implement ElevenLabs speech synthesis by sending the ChatGPT answer to ElevenLabs, receiving audio bytes, and playing them via a Flutter audio player and using a voice ID.
Learn to add a share button on the post screen using a stack and a positioned icon, then publish generated images to Firestore posts with sender details and timestamps.
Implement a reusable alert dialog and share image flow in a Flutter Firebase app, updating the chat widget to post generated images with sender and message data for DALL-E sharing.
Display posts by wiring a posts stream into a grid view, render each image with caching and placeholders, and add like and comment buttons with dark theme styling.
Create a reusable post widget in Flutter that places like and comment buttons in a row, refactoring code to pass post data and handle dynamic feeds.
Develop the image detail and post details screens, enable navigation from the post screen to a full-screen image view, and display the owner avatar with a cached network image.
Build a comments screen with a bottom chat field, reuse chat widgets, and use a from screen enum to adapt behavior for chat, comments, or user chats.
Refactor the chat list in Flutter by enhancing bottom chat field checks, using from screen routing, and extracting a chat stream widget and a comments stream widget.
Learn to implement sending the first comment by adding a send comment method that writes to posts/{postId}/comments with a comment id and sender details, and updates the post's comment count.
Implement grouped list to display Firestore post comments in a Flutter app, using grouped list and date format packages with a post id based comments stream and sticky date headers.
Align chat messages in a flutter app by comparing the current user uid to the message sender, placing on the right or left. Fix timestamp handling to ensure smooth display.
Build a chat bubble widget, reverse the message list with padding, and implement item and group comparators to sort messages by time and date, placing the latest at the bottom.
Create a chat message widget in flutter by building a styled container, handling sender versus you, padding, alignment, and displaying the message time with a formatted timestamp using a stack.
Build Flutter chat bubbles by differentiating sender and other users using senderId and uid, styling bubbles and displaying names, with Firestore comments and multi-device testing.
Fix the profile and post widgets to update the comments bubble and display accurate comment counts by refactoring the post footer, reading comments from post data, and hiding zeros.
Learn to implement a like feature in a Flutter Firebase app by streaming likes, refactoring into a reusable widget, and updating likes with Firestore transactions.
Implement a complete like feature in a Flutter app using Firebase data, manage like state, update like counts, and reflect icon and text changes in the post widget.
Learn to implement Firestore rules that restrict access by node, ensuring only authenticated users can read and only owners can write to their user data, posts, comments, charts, and likes.
Learn to configure Firebase rules for a posts database, implementing read/write access based on authentication and post ownership using sender ID checks.
Define Firebase rules for likes and comments, enforcing authenticated read access and owner-based write access using post ID, like ID, and sender ID.
Set up Firebase rules for the chats database, with user id, chat, message id, and message fields, and enable authenticated read and write access to each user's items.
Split charts and images into two tabs with a default tab controller, and wire two screens so users switch between charts and images.
Explore building a tabbed Flutter app that integrates Firebase indexing, chat and image responses via ChatGPT and Dall-E, with live updates, hot reload, and text versus image handling.
In this course, you will learn how to build a fully functional chat application with AI integration using Flutter. You will start by setting up the project and creating a theme for your app. Then, you will build the login and registration screens, including user authentication and data management with Firebase.
Next, you will learn how to implement a chat screen, including designing and implementing the landing screen UI, chat screen UI with StreamBuilder, and handling input messages. You will also learn how to use DALL-E API for image generation, parsing and displaying image response from the API, and saving ChatGPT response to Firestore.
In addition, you will learn how to add text-to-speech and speech-to-text functionality to your chat app using Elevenlabs API. You will also create a profile screen UI and add functions to the profile screen.
Finally, you will learn how to implement a post screen, including adding a grid view, creating a post widget, streaming shared posts from Firestore, and adding a like and comment function.
By the end of this course, you will have a complete understanding of how to build a chat application with AI integration using Flutter and will be equipped with the necessary skills to build your own chat app.