In this project, you will create a fully functional Blog App where users can log in, create, update, delete, and view blogs. The app should follow clean code principles and utilize GetIt for dependency injection and GetStorage for managing the login process. You will store all blog data locally, ensuring a well-structured database to manage the content effectively.
-
User Authentication:
- Implement a login system using GetStorage.
- If the user is already logged in, they should be redirected to the Home page; otherwise, they should be prompted to log in.
-
Blog Management:
-
Add Blog: Allow logged-in users to create new blog posts. Each blog should include the following content:
- Category: The category of the blog post.
- Author Name: The name of the author.
- Title: The title of the blog post.
- Summary: A brief summary of the blog.
- Content: The full content of the blog.
- Date: The date the blog was posted.
- Minutes to Read: The estimated time required to read the blog.
- Post Image: An image associated with the blog, selected via an image picker.
-
Update/Delete Blog: Allow users to update or delete their existing blog posts.
-
-
Data Storage:
- Store all blogs using a local storage solution (e.g., GetStorage).
- Ensure a well-structured database to handle blog data efficiently.
-
Blog Retrieval:
- Implement functionality to retrieve and display all blogs from local storage.
-
Saved Blogs:
- Allow users to save their favorite blogs for easy access later.
-
Search Functionality:
- Implement a search feature that enables users to search for blogs based on keywords (extra functionality, not required).
-
Figma Design:
- Clean Code: Ensure that your code follows best practices in terms of readability, maintainability, and organization.
- GetIt: Use GetIt for dependency injection to manage your app's dependencies efficiently.
- GetStorage: Implement GetStorage for storing user login data and blog posts.
- Implement additional UI elements like bottom sheets, TabBarView, TabBar, and PageView.
- Enhance the app with smooth navigation and animations to improve user experience.
- Deadline: The project must be submitted before September 1, 9:59 AM.
- Ensure that your project is well-documented, with a README file explaining the features, setup instructions, and any additional notes on the implementation. Show your creativity in both the design and functionality of your Blog App!