Cheezy World

Delivering software with discipline and joy

Building a LiveView app using AI - Part 14

Cleaning up Authentication

This is the last episode before we get back to our original plan. The authentication system currently in place is what was generated by running the mix phx.gen.auth command. The styles were cleaned up a little when I asked Claude to create a nice style for the entire site. But the behaviour is the generated form and is not what I want. In part 14 we will attack this head on.


Building a LiveView app using AI - Part 13

Setting permissions for users

Currently every user can do everything in the application. A read only user can delete a board or make any type of change they want. Let’s fix that.

Focus on Owners first

First I want to focus on ensuring the board owner can do board-level actions and other users cannot. Let me start by listing out the things that only owners can do:

  • Edit and delete their boards
  • Add new columns to a board
  • Edit or delete columns from their boards
  • Reorder columns (including drag-and-drop)

I think this is a good list. Let’s ask TideWave to make these changes.


Building a LiveView app using AI - Part 12

Adding users to boards and tasks

Since the announcement of Claude Code running inside of Tidewave I have been extremely happy about this combo. For now I am using it for nearly all of my changes to the codebase. I have even given it a name - ClaudeWave. All of the changes in this post were done using ClaudeWave.

So far our boards only have an owner. I want an owner to have the ability to add other users to a board and also assign tasks to one of those users. Let’s get started.


Building a LiveView app using AI - Part 11

Tasked with improving Tasks

The final phase of our plan is focused on visual cleanup and better error handling. Before I focused on the visual cleanup I wanted to fill in some of the gaps that exist in our plan. I’m starting with Tasks. There are several missing features that I wanted to add to Tasks to make them more useful. This post includes those changes.

Rounding out Tasks

At this time Tasks only have a title, description, and their position in the column. This really is not enough for a serious Kanban application. I asked Claude to add the following fields:


Building a LiveView app using AI - Part 10

Adding Drag and Drop

We asked Claude to finish phase six which was adding drag and drop functionality to the board. Claude did this quickly but when I tested it I found that it was more complex that expected. Claude got a few things wrong. First of all let’s watch the video of phase six.

Always test everything

At the end of the video it seems like everything was okay. One might be tempted to commit the code and move on. I think a very important step is to test everything that AI creates. Occasionally AI will make a mistake and it is important to catch it right away while it still has the entire context available.