More features for your to-do app

The last lesson walks you through building your own basic to-do app. While there are tons of to-do apps out there that you can sign up for, it's fun and powerful to create your own in Bubble because you can customize it! You can build any number of features to fit any kind of to-do system you have. Building features like these will also get you more hands-on practice with Bubble.

Here are some fun ideas for features to augment your to-do app, with a rough indication of difficulty in parentheses (on a scale of 1 = relatively easy, 5 = relatively hard). How many of these are you able to build?

(Note: This list assumes your main data type is called "Todo" and has the fields "Title", "Due date" and "Finished", but of course you might've chosen different names during the tutorial)

  • (1) The to-do list currently only shows tasks that aren't Finished; build another repeating group to show all Finished tasks for your future reference

  • (1) For unfinished Todos with a Due date in the past, change the shown Due date to instead show "X days ago", in red font, to add urgency

  • (1) Use auto-binding to provide the ability to edit a Todo's Title or Due date after you've created it

  • (2) Add the ability to assign a Todo a priority score (e.g. on scale of 0, 1, 2 or 3)

    • Show a Todo's priority in the main list of to-dos

    • Sort the Todo list so that within a given Due date, the highest priority items are at the top

  • (2) Begin keeping track, as a new field of the Todo data type, of when a Todo is marked Finished

    • Create a chart showing, for each day, how many Todos are created vs finished

  • (2) Add the ability to write longer-form notes on a Todo

  • (2) Add the ability to attach a file to a Todo

  • (3) Let a user search for a specific Todo via a searchbox

  • (3) Add web push notifications (via Bubble's OneSignal plugin) that will remind the user the day a Todo is due

  • (4) Tags! Create a new data type for Tag, so that a user can...

    • Create a new Tag

    • Add any arbitrary tags to a Todo (to handle multiple Tags on a Todo, you'll want to mark this field as a "list" of Tags)

    • See a list of existing Tags and filter the to-do list for specific Tags only

    • Delete a Tag

  • (4) Allow the user to create a recurring Todo, meaning...

    • The user can choose to have the Todo happen every 1 day, 1 week, or 1 month

    • When the user completes a Todo that's recurring, create a new Todo at the given interval away from the original Todo

    • Let the user customize how often it recurs

  • (4) Projects! Let the user nest Todos inside a Project; this probably involves...

    • Create a new data type for Project

    • Modify the Todo data type to keep track of the optional Project

    • Show the Project of a Todo in the overall Todo list

    • (Perhaps in another repeating group or other page) Show all Projects, with their Todos nested under them

    • Add other fields to Project that you think would be helpful (e.g. should Projects have their own Due dates?)

  • (5) SaaS-ify! Turn your to-do app into a SaaS product that other users can use too, especially since Bubble apps come with a User data type; this could include...

    • Creating a sign up / log in flow via a Header (hint: look at the "Header" reusable element that should exist by default in your app)

    • Take everything that was created in the lesson and move it to a different, new page in the app, so that the "index" page can be your app's landing page

    • Change the actions and elements created in the lesson to account for the fact that a user should only be able to see Todos that they created

    • For extra data security, create Privacy rules so that a user can only see Todos / data that they created

    • Create a User account settings page; as a first feature, ask the User to supply their first name, so that you can show a message like "Bob's To-do list" on the main page

    • If a user tries to visit the to-do list page without being logged in, redirect them to the index landing page, where you can pitch your to-do app to them