AI Programmer: Pythagora

Klemens Arro
6 min readApr 10, 2024

Lately, we’re seeing more projects aimed at replacing a programmer’s job. Unlike tools like Github Copilot, which boost a programmer’s productivity, these aim to handle the entire task on their own.

One such tool is Pythagora or GPT Pilot. You just describe the software you want, and it breaks down the project into tasks, starting to build your application. I decided to take it for a spin and here’s what I found.

My first impression? It’s promising but not yet mind-blowing. Given its rapid development and the pace of the underlaying AI advancement, I’m optimistic about its future. At the moment, these tools are about on par with a junior developer — albeit not the best one.

Even in these early stages, I’m struck by the potential of Pythagora. It’s not just about future possibilities; even now, there are real scenarios where this tool could effectively take over tasks usually done by human programmers. Seeing Pythagora build a project from the ground up was a glimpse into a future where AI tools don’t just assist but actively lead in software development.

For my test, I asked it to create a basic cashflow monitoring app. The app needed to have user authentication with multi-factor authentication, a dashboard with graphs for income, expenses, and net company funds, plus a way to manage this financial data.

Getting started was easy. I installed the Visual Studio Code plugin and opted for the Starter package, giving me 20 hours of GPT Pilot for $100 a month.

Pythagora first opened in Visual Studio Code.

After setting up, I gave it a brief description of the app I wanted:

### Overall Objectives:
- Develop a comprehensive web-based system dedicated to monitoring and forecasting the cash flow of businesses.
- Design the platform to streamline financial tracking and predictions, offering a user-friendly interface for ease of use.
- Implement a dashboard that provides both historical and projected cash flow insights in an intuitive and accessible format.
- Enable detailed analysis of cash flow for specific time periods as selected by the user.
- Simplify the process of recording both one-time and recurring financial transactions (income and expenses).

### Enhanced Feature Set:

#### Secure User Authentication:
- Utilise email and password credentials for user login.
- Implement robust Multi-Factor Authentication (MFA) via an authenticator app, incorporating QR code scanning functionality for initial setup.

#### Advanced Dashboard and Cashflow Visualisation:
- Present a sophisticated homepage dashboard upon user login, featuring an interactive cashflow chart.
- Implement dynamic date filters for the chart, allowing users to select specific start and end dates, with real-time chart data updates.
- Display distinct graphical representations of available cash, income, and expenses, based on the chosen date range.
- Automatically calculate and integrate both historical data and future projections from recorded transactions, eliminating the need for manual forecasting input.
- For recurring transactions, visually represent each occurrence within the selected timeframe (e.g., a monthly recurring entry from January 1st to September 1st will be shown for each month in this period).
- Include a detailed list below the chart showing all transactions (income and expenses) currently represented, with an auto-update feature to reflect changes in chart data.

#### Comprehensive Income and Expenses Management:
- Offer full control to users for adding, editing, and deleting income and expense entries.
- Allow entries to be categorized as either one-time or recurring transactions.
- Provide a variety of recurrence options: after a specified number of days or months, on a predetermined date each month, or at set intervals in years.
- Include a termination condition for recurring entries, either by a specific date or after a certain number of occurrences.
- Integrate a confirmation dialogue for the deletion of entries to prevent accidental removal.

### Detailed Functional Specification:

#### User Experience Flow:
1. **Login Page**: User authentication with email and password, followed by MFA via an authenticator app.
2. **Dashboard Interface**: Interactive cashflow chart display with filter options, alongside menu selections for income and expense management.
3. **Income/Expenses Management Area**: Facilitate the addition of new entries, with options to define them as one-time or recurring, set recurrence intervals, and determine the end of recurrence.

### Application Structure:
- **Login Interface**: Comprises email/password input fields, MFA integration, and a link/connection to an authenticator app.
- **Dashboard and Chart Area**: Features an interactive cashflow chart with time-sensitive filters and dynamic data display.
- **Income Management Section**: A specialized form for inputting and modifying income entries, options for setting up recurring payments, and a comprehensive list view for existing entries with options for editing and deletion.
- **Expense Management Section**: Mirrors the Income Management Section but tailored for managing expenses.

### Technical and Integration Specifications:

#### System Integration Components:
- **Authenticator App Connectivity**: Essential for generating and validating one-time passwords (OTPs) during login. Integration specifics include the generation of QR codes for initial MFA setup.

### Key Considerations:
- Precise calculation and representation of recurring income and expenses on both the cashflow chart and the accompanying transaction list.
- Ensure that entries designated to recur over a certain period are accurately repeated in the chart and transaction list accordingly.
- Maintain high standards of data integrity, particularly when modifying or deleting entries.
- User-friendly MFA setup process, guiding users through QR code scanning and initial OTP authentication.

Pythagora quickly checked for required services like Node.js, MongoDB, etc., then divided the project into tasks and got to work.

Pythagora asking confirmation to start executing first task.

First, it set up the database schema and began coding.

MongoDB schema Pythagora created for the application.

After each task, it prompted me to test the work. For the API testing, it provided CLI commands, and as the UI developed, it guided me through the testing process.

API testing with Pythagora provided commands.
Application testing with UI.

If I encountered any issues, I’d report them in the chat window. Pythagora would ask for details and begin debugging, followed by more testing.

Pythagora asking to test the completed task by providing step by step instructions.

The whole process took just over four hours, including waiting times. The app was built from scratch and mostly worked.

Completed dashboard graph with the sample income and expenses data.

It didn’t manage to do everything, like setting up recurring transactions, and there were some other minor issues and odd choices. But I think clearer instructions with prompting might have led to better results.

My goal wasn’t to see if it could build a complete, market-ready product, but to gauge what it’s capable of. And on that front, I’m impressed. It’s exciting to think about where this technology could be in a year or five. The progress it has made and its potential utility in current scenarios, even at an early stage, is noteworthy.

Given these developments, my advice to fellow programmers is clear: start familiarizing yourself with these tools as soon as possible. Understanding how to make them work in your favor is not just an advantage; it’s becoming a necessity. As Pythagora and similar AI tools evolve, they’re bound to become an integral part of the programming landscape. Getting ahead of the curve now could significantly benefit your future projects and career.

--

--