export const description =
  'In this guide, we’ll look at how authentication works. Protocol offers two ways to authenticate your API requests: Basic authentication and OAuth2 with a token.'

# Real Life Web Apps with Robyn

Batman was tasked with building a web application to manage the crime data in Gotham City. The application would allow the Gotham police department to store and retrieve data on criminal activities, suspects, and their locations. He decided to use the Robyn web framework to build this application efficiently and quickly.

You can find the source code for this application [here](https://github.com/sparckles/example_robyn_app).

## Installing Robyn

The first step was to install Robyn. Batman created a virtual environment and installed Robyn using pip.

```bash
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install robyn
```

## Creating a Robyn Application

Batman wanted to create a Robyn app and was about to create an `src/app.py` before he was told that Robyn comes with a CLI tool to create a new application. He ran the following command to create a new Robyn application.

```bash
$ python -m robyn --create
```

Batman was asked a set of questions to configure the application. He chose to use the default values for most of the questions.

And he was done! The Robyn CLI created a new application with the following structure.

```bash

├── src
│   ├── app.py
├── Dockerfile

```


<div className="not-prose">
  <Button
    href="/documentation/example_app/modeling_routes"
    variant="text"
    arrow="right"
    children="Modeling Routes"
  />
</div>

