EzBlog is a user-friendly android blogging application where users can easily create and publish content. The app supports cross authentication using OAUTH with Google and Facebook accounts apart from registering
The project addresses secure authorization using OAuth, allowing users to grant limited access to their resources without exposing sensitive credentials. The OAuth implementation involves client registration, authorization requests, user authorization, token requests, and access token usage.
- User Experience: Users log in using their preferred method - email, Google, or Facebook accounts.
- Flutter Code: The Flutter code integrates plugins and packages to initiate the OAuth flow and handle the user’s choice.
- Firebase Integration: Firebase Authentication services handle OAuth flows in the back-ground, validating tokens and providing user information securely.
- App-Level Access: Once authenticated, the app retrieves user data from Firebase Authentication, allowing specific features based on the user profiles
Functionalities of various screen in the app
- The Login page allows users to log in using their email and password or through social media platforms like Google and Facebook. The Sign up page allows users to create new accounts using their email, username, and password or through social media platforms like Google and Facebook.
- This navigation bar is used to switched between different sections of the app based on the selected icon. Each icon corresponds to a specific page: the HomePage displaying blog posts, the Search page for searching content, the CreateBlog page for composing new blog posts, and the ProfilePage presenting user information.
- IndexedStack is used to ensure efficient rendering by displaying only the selected page while maintaining the state of other pages.
- The feed screen displaying blog posts in a scrollable list. It fetches blog data from Firestore and arranges them based on their publication date.
- Loading indicators are used to show that the data is being fetched from the backend
- Once the user submits their search query, the app fetches data from the Firestore, filtering blog posts by titles that match the entered text.
- The search results are now displayed as a list of clickable items, each representing a blog post. Tapping on a post navigates the user to a detailed view of that specific blog post, showing its title, the banner image and its content.
- Used to create new blogs or update the existing blogs.
- Users can select images from their gallery or capture photos using their camera and use it as their banner image.
- Users can input the title and content of their blog posts via text fields provided on the screen. The title and content are saved as part of the blog post’s metadata.
- The Publish button to submit the composed blog post. It utilizes Firestore to either create a new blog post or update an existing one based on the entered content.
- User can also choose to clear the whole content and start over again
- Used to display the user information such as the username, user email, user profile picture, user provider and the blogs published.
- Used to display various components related to a specific blog post, including the author’s avatar, username, banner image, title, and content.
Follow the below mentioned steps to set up EzBlog in your local machine
Make sure you have Flutter SDK and Git installed in your machine
git clone https://github.com/SaiTeja-002/ezblog.git
cd ezblog
Run the following command to get the required dependencies:
flutter pub get
Turn on developer options and ensure that USB debugging is enabled in your Android device.
Connect your Android device to your computer and run the app using the following command to build and install the app it on your connected Android device:
flutter run
Use the following command to build the APK version of the app:
flutter build apk
The apk file will be located at build/app/outputs/flutter-apk/
. Share this APK file to your android device and open it via the File Manager.