Help conceptualizing a checklist feature

I have app written just for our company to use for internal project management, but there is feature we would like to implement and I just can’t get my head wrapped around it. We would like to have a checklist for each project, but the checklist needs to be centralized in the admin area. Each project needs to use the checklist, but have responses specific to that project. Also, when the checklist is updated in the admin area, it should also update on each project page. Can someone help me conceptualize the database setup and workflows?

Create a data called Checklist, design the checklist as a reusable element. Now you can create a repeating group with vertical rows. On each row you type in a text > example: Do laundry > use ionic checkbox or create your own checkbox and put it in that row.

Now you can control that row by changing data of current cell. For example: Checklist > Create a new row with option yes/no. Default should be set to no from the database.

On the repeating group you set data source Checklist, Search for Checklist’s. From here on you should be familiar with the basic tutorials from Bubble in changing the data.

I’m typing on mobile so sorry if some things are not clear.

I understand this, but how would this relate to each project and being able to check things off independently in each project? For example, if “Create Contract” is a checklist item, each project would have this unchecked until the contract is created and checked off in each project.

You create a different Table called Project. Then you connect Checklist with Project by adding a new Row inside Checklist called Project and type = Project.

Now you can filter Checklist according to Project.

For example Checklist’s Project’s Creator = Current User

Hi Blake, as Codeables said, you will need a thing called Checklist or Checklist items. Sounds like you understand that part of it.

To connect them to your Project, you would add a ‘list of Checklist items’ field to your Project thing.

This will enable you to add new Checklist items to each project.

If you have a list of items you want in the checklist of every project, you can add a yes/no field to your Checklist item thing called Master Item that defaults to no.

Then simply create all the Checklist items you want to have as part of your checklist in every project and mark the Master Item field as Yes.

Now we have a master list of Checklist items we will copy and add to every project.

In the workflow to create a new project, add a step before creating your project and under Data (Things), use the Copy a list of things…

The Type of things will be Checklist item and the list to copy are all the Checklist items we marked as a Master Item. To get this we will do a search for Checklist items.

Now we have our master checklist in hand. In the step of creating a new Project, on the field Checklist item (list) we will set list as Result of step 1.

We now have a fresh new checklist attached to our brand new project.

Caveat 1 - If your checklist is really long you will need to add a Project field to the Checklist item instead of a list of Checklist items to the Project.

Caveat 2 - This can slow down the process of creating a new project. The work of copying the list of Checklist items and adding them to your project can be dumped into an API workflow so that it runs in the background while you go about your business of setting up your new project.

2 Likes

Eli, thanks for the detailed post, and I have done something similar for other aspects of my app. My goal on this feature would be to not have to copy the whole list every time I create a new project. Each project would be tied to the master list, so if the master list is updated or new items added to it, all projects reflect those changes. The data model would be like a matrix, all the checklist items down the y axis and all the projects along the x axis. Maybe this can’t be accomplished with bubble?

That’s easily done with copying the whole list for each project. Simply add a unique identifier to each checklist item and then set that value when you create the master item. Could be as simple as a number field (i.e. item id = 3)… or a text field (i.e. item id = generate random string / Or use the unique record id Bubble creates for every record: item id = master item’s unique id)

When you add a new item to the master list, run a workflow that creates a duplicate of the new item for all your projects.

When you update a master item, run a workflow that updates all the checklist items that have the same item id as the master item you updated.

To be able to have an independent status for each checklist item, you will have to have an independent state of it represented in some way. The most scalable and easy to maintain approach is the one I outlined above.

So this is exactly the same as copying the list for each new project. You have your master checklist down the left column and your projects listed across the top. Below each project is a column of cells that reflect the status of the master list all the way to the left for that project.

This column is not the master list, it is a duplicate of it that represents only the project in the header cell of the column.