Creating a simple TODO App with Pythagora V1 (Early access)

Olof Astrand
3 min readOct 25, 2024

--

Pythagora AI Coding assistent

I got the privilege to be accepted as a beta tester of the Pythagora ai-development platform. Here I will share my experience. If you want more details watch this Video.

https://www.youtube.com/watch?v=4g-1cPGK0GA

As with all software you cannot start without a plan and initial idea of what you want to develop. I tried to input another spec, but somehow the AI transformed this into a todo list.

Ai generated spec,

## Features

- **Display of Todos**: A list that displays all todo items. Each item shows its description and a checkbox to indicate its state (open or completed).
- **Add New Todo**: A button to add a new todo item. Clicking this button will prompt the user to enter a description for the new todo.
- **Toggle State**: Each todo item includes a checkbox. Checking/unchecking this box toggles the todo's state between open and completed.
- **Local Storage**: The application uses the browser's local storage to persist todos between sessions, ensuring that users do not lose their data upon reloading the application.

I installed mongodb 8.0 and nodejs as they are normally a reqirement for most projects built with pythagora v1. However this project uses the localStore.

The task built successfully, but I had some issues whith the start app (rocketship) Instead I did, npm run dev, ,manually.

No problem with initial app

After this I tried to add drag and drop.

The pythagora software makes a plan and implements

Updating the spec

During deevelopment it choosed a deprecated module,

Normally during development human testing is still necessary.

Human testing is still necessary

This is how I manually started the project.

 npm run dev

> AI Scheduler@0.0.0 dev
> vite

Vite configuration is being loaded

VITE v5.4.10 ready in 332 ms

➜ Local: http://localhost:3000/

It turns out that it tried to create items that was possible to drag but forgot about those already in the local storage. The did not have an id.

I implemented this as a workaround.

localStorage.removeItem('todos');

This did not solve all problems and after several attempts Pythagora was not able to fix the bug, so I switched to pair programming, but was not able to fix it due to limited time.

Switched to pair programming mode

More reading, https://github.com/Pythagora-io/gpt-pilot/wiki

The complete sourccode can be found in this repo, https://github.com/Ebiroll/scheduler/tree/main/ai-scheduler

The repo also contains some other sourcecode where I use Codepilot workspace. In another article I will try a side by side comparison by using these two tools. AI-assisted development does not work good enough yet, but I think this is the future of programming. We will become testers and bughunters until the AI also will manage this task.

--

--

Olof Astrand
Olof Astrand

Responses (1)