How to create a checklist

Hi bubblers,

Hope all is well. I have question around how to design checklist for users. Here is the idea:

  • A user will log in and see the checklist on their membership site.
  • The checklist is identical for each user.
  • A user should be able to check the items off for themselves (which would obviously not affect other users’ checklists)

I am very uncertain to how to structure the database and the resulting repeating group with checkboxes.

Would hugely appreciate the help! :slight_smile:

Hi there, @jpd.peters… as with all things Bubble, there are a number of ways you can do what you described, but the main requirement is probably the fact that the checklist is identical for each user. Given that the checklist is universal, you will only want one copy/version of it in your database, and I would likely accomplish that goal by having a Checklist data type in which you create a thing for each item on the checklist. With this data type in place, it will be easy to display a repeating group of the checklist’s items by making the repeating group’s data source a Search for Checklists with no constraints on the search. You would also include a checkbox in the repeating group, and now you are all set to track the completed items for each user.

So, how do you go about tracking the completed items for a user? Well, once again, you have options, and the “ideal” way probably depends on what you need on the front end. For example, if you only care about whether or not a user completed a particular item, you could go with a simple approach of having two list fields on the User data type that both link to the Checklist data type. One of those fields would hold a list of incomplete items (which you would populate automatically with all of the things in the Checklist data type when a user signs up) and the other field would hold a list of completed items. When a user indicates they have completed an item by checking its associated checkbox, you would remove the item from the user’s incomplete items list and add the item to their completed items list.

If you need to know a bit more about completed items, such as when each item was completed, you would need to store each completed item in a new data type, and that data type would have a field that links to the Checklist data type. In this case, when a user completes an item, you would create a new thing in the new data type, and the thing would link to its associated item in the Checklist data type.

Anyway, that’s probably enough for now, and I hope this helps, even if it’s just food for thought.

Best…
Mike

1 Like

Hi Mike,

First of all, thank you so much for the fast reply, this has already been incredibly helpful! I managed to create a “complete” and “incomplete” list per user so not to change anything in the actual checklist data type. Great tip!

My question right now is: how do I a) make sure all checklist items get added to the user’s “incomplete” list by default and b) move the items from incomplete to complete within the workflow?

I’m clearly still super new to bubble, really appreciate the help! :slight_smile:



Screenshot 2022-08-10 at 17.18.07

Add a step to your sign up workflow that makes changes to the current user, and the change to make is Checklist_incomplete set list Search for Checklists (with no constraints on the search).

Create a workflow using the An input’s value is changed event, with the input being the checkbox in the repeating group, and add a condition to the event to run it only when the checkbox is checked. Add a step to the workflow that makes changes to the current user, and the changes to make are Checklist_complete add Current cell's Checklist and Checklist_incomplete remove Current cell's Checklist.