flask-graphql │ ├── app/ │ ├── init.py │ ├── models/ │ │ ├── init.py │ │ ├── book.py │ │ ├── user.py │ │ ├── notification.py │ │ ├── rate_limit.py │ │ ├── social_auth.py │ │ └── password_reset.py │ │ │ ├── schema/ │ │ ├── init.py │ │ ├── inputs/ │ │ │ ├── init.py │ │ │ ├── book_input.py │ │ │ └── user_input.py │ │ ├── mutations/ │ │ │ ├── init.py │ │ │ ├── book.py │ │ │ ├── user.py │ │ │ └── notification.py │ │ ├── queries/ │ │ │ ├── init.py │ │ │ ├── book.py │ │ │ └── user.py │ │ └── schema.py │ │ │ ├── views/ │ │ ├── init.py │ │ ├── main.py │ │ ├── auth.py │ │ └── notifications.py │ │ │ ├── services/ │ │ ├── init.py │ │ ├── email_service.py │ │ └── rate_limit_service.py │ │ │ ├── utils/ │ │ ├── init.py │ │ ├── validators.py │ │ └── helpers.py │ │ │ └── templates/ │ ├── login.html │ ├── register.html │ └── reset_password.html │ ├── migrations/ │ ├── tests/ │ ├── init.py │ ├── test_books.py │ ├── test_users.py │ └── test_notifications.py │ ├── static/ │ ├── css/ │ ├── js/ │ └── images/ │ ├── venv/ │ ├── .gitignore ├── README.md ├── Pipfile └── run.py