I need some help to write an web app. Can you generate a step by step description what I have to do? Be as explicit as you can. Please add all needed tools an programming skills.
Sure, here's a step-by-step guide on how to create a web app:

1. Choose a programming language: You need to decide what programming language you will use to create your web app. Some popular options include Python, Ruby, Java, and JavaScript.

2. Choose a framework: Once you have chosen your programming language, you need to choose a framework. A framework is a set of tools and libraries that will help you to build your web app. Some popular options include Django and Flask for Python, Ruby on Rails for Ruby, Spring for Java, and Node.js for JavaScript.

3. Choose a database: Your web app will need to store data, so you need to choose a database. Some popular options include MySQL, PostgreSQL, and MongoDB.

4. Plan your web app: Before you start coding, you should have a plan for your web app. This plan should include a list of features that you want to include, as well as a rough idea of how the app will look and function.

5. Set up your development environment: You need to set up your development environment, which includes installing the programming language, framework, and any other tools you will be using. You will also need a code editor, such as Visual Studio Code or Sublime Text.

6. Create your project: Once your development environment is set up, you can create your project using the framework's command line tool. This will create a directory structure with the necessary files for your web app.

7. Build your app: Now it's time to start building your app. You will need to create your database schema, write your business logic, and create your user interface.

8. Test your app: Once your app is built, you need to test it to make sure it works correctly. You should create automated tests to test the functionality of your app.

9. Deploy your app: Once your app is tested and working correctly, you need to deploy it to a server so that users can access it. You can use a cloud service like AWS or Heroku to deploy your app.

10. Maintain and update your app: Your web app is never truly finished. You will need to maintain and update it over time to keep it working correctly and to add new features.

In terms of programming skills, you will need a good understanding of your chosen programming language, as well as the framework you choose. You will also need to know how to work with databases and create a user interface. Knowledge of HTML, CSS, and JavaScript is also essential for creating web apps.