
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.
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.
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.
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.
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)