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
  • Introduction
  • Goal
  • Scope
  • Implementation design

Was this helpful?

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

Table

Mohammad Zolfaghari

Introduction

Being able to add and modify tabular content is an important feature in any document writing/editing application.

Table is one of Appflowy suggested project ideas which aims implementing basic tabular content feature for Appflowy document pages. Currently, nothing related to tabular content is supported, So it will be implemented from scratch. Probably similar to other appflowy editor plugins.

Goal

Appflowy will have a table plugin which could get added as a selection menu item (available with slash '/' command) and through Markdown syntax. Also with all related features like resizing, adding modifying rows/cols enabled and basic rich-text support in cells.

Scope

On completion of this the user will be able to:

  • Insert table command which can get added as selection menu item

  • Basic table which also can get duplicate or deleted

  • Being able to add/delete/duplicate/update rows and columns of existing table

  • Resize column/row feature

  • Support rich-text editing in table cells (basic markdown features like bold, italic, checkbox, ...)

  • Drag and Drop feature for rows and columns

  • Enable text color and background color for rows and columns

  • Support Markdown table creation |Col A|Col B| should convert to a table

Implementation design

After this and having a basic table the features should get implemented one by one. A table mainly consist of three parts Row, Column, Cell and all desired features are related to one or multiple of these parts.

For markdown support regarding converting a Markdown syntax table to appflowy table I will implement it within appflowy editor Markdown plugin. There will be both decoder and encoder for table.

All the way most of the code will have tests for each feature and action.

PreviousShortcuts and Customized Hotkeys for AppFlowyNextFavorites

Last updated 2 years ago

Was this helpful?

First I have to decide using a base dart package for table or writing it from scratch. Until now after some digging for using a base package my suggested options are package and . DAVI seems promising, But I'm not sure that all intended features and goals are achievable with it in a good way. Will start with DAVI and see how it goes.

🌱
📔
DAVI
flutter table