
Initialize the project with Flutter 3.3.4 and Dart 2.18.2 using flutter create, organize a features folder, and add a palette for theme colors to support light and dark mode.
Organize a Reddit clone app with three folders: screen, repository, and controller to separate UI, Firebase calls, and logic, establishing UI to controller to repository data flow.
Create a Flutter login screen with the Reddit logo, a skip option, and a Google sign-in button, while organizing assets and constants and preparing Firebase authentication.
Set up firebase for a flutter app by creating a firebase project, installing firebase tools, and configuring google sign-in for android, ios, and web.
Implement Google sign-in with Firebase authentication in a Flutter app, wiring an auth repository and controller with provider scope to authenticate and save user data to Firestore.
Create a user model and store it in Firestore using toMap and fromMap, keyed by the users collection, while distinguishing new and existing users to preserve karma and defaults.
Apply an efficient exception handling technique in Flutter apps using the future either pattern, a dedicated failure class, and fold to expose errors and show snack bar feedback.
Learn how to store and update a user model using a state provider and state notifier in Riverpod, wire in ref, and display a loading indicator during Google sign-in.
Set up routing for the flutter app using a roadmaster wrapper around Navigator 2.0 to create logged out and logged in routes, and define a route map.
Persist Firebase state by streaming user changes, loading user data into a provider, and routing between logged-in home and logged-out screens with stream providers and get user data.
Design a home screen app bar with a menu icon that opens a side drawer, featuring a profile circle avatar and a flow to create a community stored to Firebase.
Build and bind a community list drawer on the screen using River Port consumer widgets, then navigate to a create community screen via Routemaster with context and text field disposal.
Create communities in Firestore via a repository and controller, validating unique names in the communities collection and persisting a Community model with banner, avatar, members, and mods.
Create a dynamic Flutter community profile UI with slug-based routing, streaming community data by name, and a scrollable profile banner, including join or moderator tools and editing features.
Create a mod tools screen with options to add moderators and edit the community, using simple list styles and icons, and wire navigation to the corresponding screens via route master.
Create the edit community screen UI with a non-centered app bar, banner and profile images, dotted border, and image picker, saving data to Firestore and Firebase Storage.
Learn to edit a community by uploading banner and avatar to Firebase Storage, retrieving download URLs, and updating Firestore with new values via a storage repository and community controller.
Learn to implement a search for communities in a Flutter Reddit clone using a custom search delegate, stream providers, and Firestore queries, displaying results and navigating to community screens.
In this reddit clone flutter course lecture, build a profile drawer with a circle avatar, user name, and logout option; include a divider and a platform-adaptive theme switch.
Implement join and leave community features using a Firestore-backed repository and controller, updating the members array with fieldValue.arrayUnion, handling errors, and reflecting changes in real time via streams and snackbars.
Build an add moderators screen for a reddit clone, using a stateful consumer and checkbox list to select members, fetch user data, and save mods through a repository.
Create reusable user profile ui in a flutter app using riverpod, including a profile screen, uid-based routing (/u/uid), edit profile button, and a consistent layout with avatar, karma, and spacing.
Explore the edit profile screen that loads the current user name, lets you edit it with a text editing controller, and saves changes to Firestore.
Master theme toggling in a Flutter app by building a team notifier using state notifier, shared preferences, and a light/dark enum, with get team and toggle team functions.
Build a bottom navigation bar with a Cupertino tab bar for home and ad post items, using theme-driven colors and on-tap page switches.
Build a responsive add post UI in Flutter with three cards (image, text, link), each tappable to navigate to type-specific add post screens using Riverpod state management.
Design and implement a Flutter post composer for a Reddit clone, supporting image, text, and link posts, with title, description, community selection, and Firebase-backed posting.
Fetch and surface a user’s feed posts in a Flutter Reddit clone by querying posts from user communities via Firebase, streaming results, and rendering image, text, and link posts.
Develop delete post functionality in the reddit clone Flutter app, with Firebase error handling, post repository call, and binding to the post card delete icon via the controller and notifier.
Implement upvote and downvote toggling for posts in the post repository. The logic checks existing votes, removes opposing votes, and updates the post using the user id via asynchronous calls.
Implement moderator controls on posts by conditionally showing a moderator icon for moderators, navigate to user and community profiles, and enable post deletion via the admin panel.
Learn to fetch and display a user's posts in a Flutter Reddit clone using stream providers, uid filters, and real-time updates with proper error handling and loading indicators.
Implement a get post by id flow in the repository, wire stream provider in flutter, and build a comments screen with a text editing controller to view and add comments.
Update user karma in a Reddit clone by assigning karma values to actions—comment, text post, link post, image post, award post, delete post—and persisting via the user profile repository.
Implement a Flutter reddit clone awarding system with a gift button and an awards dialog showing image assets in a grid, updating Firestore post and user data.
Enable anonymous sign-in with Firebase for guest users in the Reddit clone app. Implement a guest sign-in flow, update the user model, and show snack bar feedback during login.
Restrict guest users by hiding profile actions, post creation, upvotes, and comments, prompt sign-in, and link anonymous accounts with Google while fetching top ten guest posts.
Learn to run a Flutter Reddit clone on the web with responsive UI, configuring the web renderer, and applying a responsive widget to scale layouts up to 600 pixels.
Conclude the Flutter intermediate app development course by wrapping up the Reddit clone tutorial. Thank viewers for watching and invite them to the next video.
This is a Tutorial to build Responsive Reddit Clone, a Social Media application with Flutter as frontend framework and Firebase as Backend!
This app consists of all the popular features from Reddit. One can login with Google or as Guest where there are guest restricted features, for example displaying the latest posts, dissimilar to what happens in Google Sign In, where we get posts from the communities we are a part of. With Google Sign In, one can also create and join communities, edit description and avatar of community, edit user profile, share text, link or image based posts, upvote, downvote, comment, award, delete, with moderator special features like adding other moderators and deleting any post. Also, one can toggle the theme in the application, from dark mode to light mode or vice versa. It is a completely responsive project, accessible on Android, iOS & Web.
In this process, learn about designing Responsive UI and manage routing with Flutter, writing backend code and complex queries with Firebase and State Management with Riverpod 2.0! Also, take a step forward with Folder Structure in Flutter!
Features:
Google/Guest Authentication
Create, Join community
Community Profile (Avatar, Banner, Members)
Edit Description and Avatar of community
Post (link only, photo, text only)
Displaying posts from communities user is part of
Upvote, Downvote
Comment
Award the Post
Update Karma
Add Moderators
Moderator- remove post
Delete post
User Profile (Avatar, Banner)
Theme Switch
Cross Platform
Responsive UI
Latest posts (instead of home, display this to guest users)