# Build a Banking App Part 2: Build a Login and Registration Form ## Pre-Lecture Quiz [Pre-lecture quiz](https://ashy-river-0debb7803.1.azurestaticapps.net/quiz/43) ### Introduction In almost all modern web apps, you can create an account to have your own private space. As multiple users can access a web app at the same time, you need a mechanism to store each user personal data separately and select which information to display information. We won't cover how to manage [user identity securely](https://en.wikipedia.org/wiki/Authentication) as it's an extensive topic on its own, but we'll make sure each user is able to create one (or more) bank account on our app. In this part we'll use HTML forms to add login and registration to our web app. We'll see how to send the data to a server API programmatically, and ultimately how to define basic validation rules for user inputs. ### Prerequisite You need to have completed the [HTML templates and routing](../1-template-route/README.md) of the web app for this lesson. You also need to install [Node.js](https://nodejs.org) and [run the server API](../api/README.md) locally so you can send data to create accounts. **Take note** You will have two terminals running at the same time as listed below. 1. For the main bank app we built in the [HTML templates and routing](../1-template-route/README.md) lesson 2. For the [Bank APP server API](../api/README.md) we just setup above. You need two of the servers up and running to follow through with the rest of the lesson. They are listening on different ports(port `3000` and port `5000`) so everything should work just fine. You can test that the server is running properly by executing this command in a terminal: ```sh curl http://localhost:5000/api # -> should return "Bank API v1.0.0" as a result ``` --- ## Form and controls The `