LogoLogo
  • AppFlowy
    • ⭐Start here
      • Welcome to AppFlowy Docs
      • How to get help
      • Install AppFlowy
    • 🛠️Installation
      • 🖥️System Requirements
      • 💿Installation methods
        • Mac / Windows / Linux Packages
          • Installing on Linux
            • Installing & Setting up Flutter on Linux from Source
        • Docker
    • 🌱Community
      • 🤙Get in contact
      • 📔AppFlowy Mentorship Program
        • Program Guidance
        • Proposal Template
        • Pull Request Template
        • Mentorship 2023
          • Mentee Projects
            • Calendar View for AppFlowy Database
            • Custom Themes
            • Shortcuts and Customized Hotkeys for AppFlowy
            • Table
            • ⭐Favorites
            • Code Block
            • Outlines
            • Importers
            • AI Writers
            • Templates
          • Project Ideas
      • ✍️Write for AppFlowy
        • 📃Drafts
          • [Draft] Use Case: Software Engineer
          • [Draft] Use Case: High School Students
          • [Draft] How to add a new property to appflowy database
      • 🍂Hacktoberfest
    • 🛣️Roadmap
    • 🌋Product
      • 💽Data Storage
      • 🎨Customize and Style Content
      • ⏮️Duplicate, Delete, and Restore
      • 💎Databases
        • 🔢Database Properties
        • 🗃️Manage Properties
      • Ⓜ️Markdown
      • ⌨️Shortcuts
      • 🪄AppFlowy AI
      • 🦙AppFlowy Local AI - Ollama
      • 🎨Themes
      • ☁️AppFlowy Cloud
      • 🧩AppFlowy Plugins
        • Table-view Databases
        • Kanban Board
        • Calendar
        • Auto Generator
        • Smart Edit
        • Code Blocks
        • Math Equations
        • Cover
        • Emoji
  • Documentation
    • 💎Software Contributions
      • 🟢Get started
      • 💀Architecture
        • Frontend
          • Tauri
            • 🗺️CodeMap
          • Web
            • 🌟Design Philosophy
          • Flutter
            • 🗺️Project Structure: CodeMap
            • 🧮Grid
            • ⚙️Setting
          • Inter-Process Communication
          • User
            • User Data
            • Events & Notifications
          • Folder
            • Events & Notifications
          • Document
          • Database View
            • Events & Notifications
            • Grid
            • Calendar
            • Kanban Board
        • Backend
          • Initialize
          • Events
          • Delta(WIP)
          • Profiling
          • Database
        • Domain Driven Design
        • Proposals
      • 🏗️Conventions
        • 🔤Naming Conventions
        • ⌨️Code Conventions
          • 🐦Flutter
        • 🐙Git Conventions
      • 💛Submitting Code
        • 🏦Setting Up Your Repositories
        • ⤴️Submitting your first Pull Request
      • 🤟Coding Standards and Practices
        • 👽Rust Backend
    • 🚀AppFlowy
      • 👾How to contribute to AppFlowy
      • 🏗️Building from Source
        • 🌳Flutter Setup
          • 🐧Building on Linux
          • 🍎Building on macOS
          • 🪟Building on Windows
        • 🌐Web Setup
        • 📡Tauri Setup
      • ☁️Debugging with AppFlowy Cloud
      • 🔁Debugging in VS Code
      • ☎️Translate AppFlowy
      • ❓Troubleshooting
      • 👮‍♀️Licenses
    • 🏍️AppFlowy Editor
      • ⌨️How to Implement Markdown Syntax To Style Text In AppFlowy Editor
      • 🧩How to Create a Plugin for AppFlowy Editor
      • 👮‍♀️Licenses
    • ☁️AppFlowy Cloud
      • 🌈Architecture
      • ☀️Deployment
  • Guides
    • Sync Desktop and Mobile
    • Self-Hosting AppFlowy
      • ☁️Self-hosting AppFlowy with AppFlowy Cloud
      • 🆓Self-hosting AppFlowy for free Using Supabase
    • Import From Notion
  • Blog Highlights
    • 🔮Demystifying AppFlowy Editor's Codebase
  • Handbook
    • Core values
Powered by GitBook
On this page
  • Problem
  • Solution
  • Goals
  • Implementation Design
  • Timeline:
  • Midterm Valuation
  • Impact
  • Risks and Mitigation

Was this helpful?

Edit on GitHub
  1. AppFlowy
  2. Community
  3. AppFlowy Mentorship Program
  4. Mentorship 2023
  5. Mentee Projects

AI Writers

Yatendra Kumar

PreviousImportersNextTemplates

Last updated 1 year ago

Was this helpful?

Problem

Writing can often be time-consuming, tiring, and occasionally frustrating. Whether it's composing an email, jotting down a to-do list, or drafting a blog post, the challenge lies in the mental effort required to organize thoughts and ideas coherently. Moreover, prevalent issues like writer's block can compound these difficulties. There is a clear need for intelligent tools that can assist in generating and organizing content efficiently.


Solution

AI-powered writing assistant using Flutter and the GPT-4 model from OpenAI. The assistant, tentatively named "AI Writers", will assist users in generating and organizing content efficiently. This includes automatic to-do list generation, blog post drafting, and outline creation.

Similar to the notion AI, we can keep a button or just press space for "ask AI"


Goals

The successful completion of this project will involve:

  • A fully functional API wrapper using Rust that uses AI to generate to-do lists, create outlines, and draft blog posts.

  • A user-friendly interface that encourages engagement and facilitates ease of use.

  • Comprehensive documentation covering the architecture of the application, functionality, usage instructions, and the integration process of the GPT-4 model.

  • A well-structured thoroughly commented codebase for easy understanding and future development.


Implementation Design

  • The application will be developed using Rust & Flutter, which allows for cross-platform compatibility.

  • OpenAI's GPT-4 model will provide AI-powered writing assistance.

  • Rust will be used for network requests to the OpenAI API.


Timeline:

Week 1 (19/06/2023):

Tasks:

Milestones:

  1. Gain a comprehensive understanding of GPT-4 capabilities and functionalities

  2. Gain in depth understanding of appflowy best coding practices integrated in CI/CD.

  3. Determine if there are existing Rust libraries available for GPT-4 integration

Week 2 (26/06/2023):

Tasks:

Milestones:

4. Develop a basic Rust wrapper for OpenAI API with minimal functionality.

5. Understand the basic structure and components of the AppFlowy backend.

Week 3 (03/07/2023):

Tasks:

Milestone:

5. Build an end-to-end demo system using gpt-4 with proper prompting

Week 4 (10/07/2023):

Tasks:

Milestones:

7. Upgrade Rust wrapper for OpenAI API with advanced features.

8. Gain a deep understanding of AppFlowy backend, including data flows and dependencies/

9. Raise a PR for issue. (raised pr: #3009).

Week 5 (17/07/2023):

Tasks:

Milestones:

10. Finalize application design and UI.

11. Begin the process of integrating GPT-4 Rust Wrapper with rust backend structure.

12. Successfully integrate GPT-4 Rust Wrapper with rust backend structure.

13. Initiate the development of the to-do list feature.

Week 6 (24/07/2023):

Tasks:

Milestones:

14. Complete the development of the to-do list feature

15. Initiate the development of the outline creation feature


Midterm Valuation

  • Gained comprehensive understanding of GPT-4 and AppFlowy's coding practices.

  • Identified potential Rust libraries for GPT-4 integration.

  • Developed a basic Rust wrapper for OpenAI API.

  • Explored AppFlowy's backend structure.

  • Built a demo system using GPT-4 with proper prompting.

  • Enhanced Rust wrapper for OpenAI API with advanced features.

  • Delved deeper into AppFlowy's backend complexities.

  • Resolved a bug in AppFlowy (PR: #3009).

  • Finalised application design and UI (similar to Notion AI).

  • Initiated and completed GPT-4 Rust Wrapper integration with backend.

  • Began development of auto-generating to-do list feature and completed it.

  • Initiated development of outline creation feature.


Week 7 (31/07/2023):

Tasks:

Milestones:

16. Achieve modular and scalable Rust wrapper API code.

17. Completed tests for the API with 100% coverage.

Week 8 (07/08/2023):

Tasks:

Milestones:

18. Completed and polished frontend Flutter interface.

19. Full test coverage for the entire frontend interface.

20. Deep understanding of the integration flow from backend to frontend.

Week 9 (14/08/2023):

Tasks:

Milestones:

21. Successfully fixed the Evernote importer issue (#2971).

22. Successful integration of the Rust wrapper API with the Flutter frontend.

23. Completed tests for the integrated system.

Week 10 (21/08/2023):

Tasks:

Milestones:

24. Complete the project documentation.

25. Address and fix any bugs or issues that may arise during testing.

26. Initiate the migration of current OpenAI features to using Rust wrapper.

Week 11 (28/08/2023):

Tasks:

Milestones: 27. Successfully migrate all current OpenAI features to use Rust wrapper 28. Continue comprehensive testing and debugging of the entire application 29. Ensure all identified issues are resolved and application is fully functional

Week 12 (04/09/2023):

Tasks:

Milestones:

30. Successful project review and preparation for final live deployment.

31. Successfully prepare the application for deployment, with all features working as expected

32. Completion of a comprehensive blog documenting the entire project.


Impact

The successful implementation of this project will provide a powerful tool for users who require assistance with various writing tasks. By automating these tasks, users can focus more on their ideas and less on the mechanical aspects of writing.

Given the increasing demand for AI-powered tools and the widespread use of mobile devices, this project can potentially benefit a wide range of users.


Risks and Mitigation

  • Risk: Unfamiliarity with the GPT-4 model.

    • Mitigation: My recent completion of a course on prompt engineering from OpenAI gives me a solid foundation to understand and utilize the GPT-4 model effectively.

  • Risk: API limitations, changes, or costs associated with using GPT-4.

    • Mitigation: For cost mitigation, the application will require the users to provide their API keys to access GPT-4, allowing the usage costs to be borne by the user directly.

  • Risk: Time management due to other commitments.

    • Mitigation: Adherence to a strict schedule and prioritization of tasks will be key in managing this project alongside other responsibilities.

🌱
📔
Screenshot 2023-06-12 at 2 25 55 PM