Files
gpt-pilot/euclid/prompts/breakdown_2.1_user_flows.pt
Zvonimir Sabljic cb579d8aba Added local files
2023-07-18 11:17:22 +02:00

58 lines
5.7 KiB
XML

I want you to create the application (let's call it Euclid) that can be described like this:
```
{{ description }}
```
We are going to create this app together, step by step. Here is an overview of tasks that you need to do to create this app from scratch:
1. break down the app's functionality. Here, you need to list out all the possible features of the app regardless of if a user can interact with the feature (like enabling user to do something) or if it's a technical feature that needs to exist to make the app work (like having a database to store the data).
2. Break down all the different user journeys that a user might experience while interacting with Euclid. Each journey needs to be described in as much detail as possible because that will be the fundamental base upon which you will break down the details of how the code structure will look like.
# how to start the app
# how to open the results with the command line so that user sees what's going on
2. Break down the plan for iteratively working on Euclid. Throughout the process of coding Euclid, we will create functionality screen by screen, I will test it and tell you how it works. Then, you will change the code or move onto the next screen. In this task, you will need to list out low level user experience from the start when the app is run all the way throughout all user journeys. This will basically be a plan for coding later on.
3. Break down high level components that show how the codebase needs to be structured. For example, do we need frontend and what kind - mobile app, HTML website, etc. How the backend needs to look like; do we need to have a database and what database is best to use for this project? Do we need some other technologies like sockets, cronjob or something else? What secret keys do we need to use for this project and how the environment variables will be handled?
4. Break down how will the user start the app and what will be the first screen. Then, I'll try running the app and see if it works and I will give you the feedback. We will iterate on this step until we have the first screen working.
5. Break down how the files and folders will be structured to support all the outlined user journeys and components. You will need to think step by step through each user journey and through each component and create the project structure. The project structure needs to contain every file and folder that will be eventually created with names along with a comment on what will be contained in each file or folder. In this step, you won't need to create code, just the project structure.
# exporting of functions - how to make sure we export them
# what is with the code that's not necessarily a function - how to handle that
# we should save all comments from GPT
# how can we know what's a working database URL???
6. Loop through each file that you listed in the previous task, think step by step through all components and user journeys and list all functions that will need to be created in each file that will eventually make the app work. In this task, you will just need to create names and descriptions of what each function will need to do. With each function, make sure that you determine the input arguments and the return value (if there is any)
# trebamo imati procese za provjeru da li postoji node, mongo, da li je Mongo uključen, etc.
7. Since we will be building this app with TDD, in this task, you will need to loop through each function that you listed in the previous task, think step by step through all components and user journeys and list all tests that will test every functionality of the app Euclid. You will start from the high level tests (integration or end-to-end tests) like testing if user can click on a specific element or if backend returns correct data. Then, you will go down all the way to unit tests for each specific function and list the tests needed. For each test, you will just need to create the test name and a description of what it needs to test.
# u ovom trenu treba prvo posložiti strukturu podataka, a onda tek pisati testove
# treba se error handling složiti tako da, ako se dogodi error, da možemo GPT-u pokazati točno gdje je error i što kaže
8. Write the tests and the code. This task will be an iterative task where you will think step by step from the low level, unit, tests all the way up to the high level integration and end-to-end tests. You will create test by test and after each test, you will create the code for it. I will run the test to check if it passes and show you the error. Will will do this iteratively until all tests pass and all code is written. By the end of this task, the Eucild app should be working.
9. Finally, you will write all other necessary files and scripts that will make the app actually work like script to run the app, script that initializes the database, script that installs all the dependencies, and everything else that a developer needs to run to make the Euclid app work.
Ok, now, let's start with breaking down the task #1. Think step by step and break down the user journeys for the described app.
{% if old_user_flows %}
You've listed the following user flows:
{% for flow in old_user_flows %}
{{ flow }}
{% endfor %}
I want to modify the user flows so that these flows are included:
{% for flow in new_user_flows %}
{{ flow }}
{% endfor %}
Now, rewrite the user flows so that they include the new flows. Keep in mind that the new user flows have a higher priority than the old ones so if any of the old user flows conflict with the new ones, the new ones should be used.
{% else %}
Ok, now, think step by step and break down the user flows for the described app. What are all flows that user can take that this app should support?
{% endif %}