gitextract_r3jbnx09/ ├── .github/ │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── ci.yml │ ├── pre-commit.yml │ └── release.yml ├── .gitignore ├── .pre-commit-config.docker.yaml ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── LICENSE.txt ├── Makefile ├── README.md ├── docker-compose.yml ├── docs/ │ ├── additional-settings.md │ ├── contributing.md │ ├── deployment.md │ ├── get-started.md │ ├── stylesheets/ │ │ └── extra.css │ ├── support.md │ └── technology-selection.md ├── fastapi_backend/ │ ├── .gitignore │ ├── Dockerfile │ ├── alembic.ini │ ├── alembic_migrations/ │ │ ├── README │ │ ├── env.py │ │ ├── script.py.mako │ │ └── versions/ │ │ ├── 402d067a8b92_added_user_table.py │ │ └── b389592974f8_add_item_model.py │ ├── api/ │ │ └── index.py │ ├── app/ │ │ ├── __init__.py │ │ ├── config.py │ │ ├── database.py │ │ ├── email.py │ │ ├── email_templates/ │ │ │ ├── __init__.py │ │ │ └── password_reset.html │ │ ├── main.py │ │ ├── models.py │ │ ├── routes/ │ │ │ ├── __init__.py │ │ │ └── items.py │ │ ├── schemas.py │ │ ├── users.py │ │ └── utils.py │ ├── commands/ │ │ ├── __init__.py │ │ └── generate_openapi_schema.py │ ├── mypy.ini │ ├── pyproject.toml │ ├── pytest.ini │ ├── requirements.txt │ ├── start.sh │ ├── tests/ │ │ ├── __init__.py │ │ ├── commands/ │ │ │ ├── __init__.py │ │ │ ├── files/ │ │ │ │ ├── openapi_test.json │ │ │ │ └── openapi_test_output.json │ │ │ └── test_generate_openapi_schema.py │ │ ├── conftest.py │ │ ├── main/ │ │ │ ├── __init__.py │ │ │ └── test_main.py │ │ ├── routes/ │ │ │ ├── __init__.py │ │ │ └── test_items.py │ │ ├── test_database.py │ │ ├── test_email.py │ │ └── utils/ │ │ ├── __init__.py │ │ └── test_utils.py │ ├── vercel.json │ ├── vercel.prod.json │ └── watcher.py ├── local-shared-data/ │ └── openapi.json ├── mkdocs.yml ├── nextjs-frontend/ │ ├── .gitignore │ ├── .prettierignore │ ├── Dockerfile │ ├── __tests__/ │ │ ├── login.test.tsx │ │ ├── loginPage.test.tsx │ │ ├── passwordReset.test.tsx │ │ ├── passwordResetConfirm.test.tsx │ │ ├── passwordResetConfirmPage.test.tsx │ │ ├── passwordResetPage.test.tsx │ │ ├── register.test.ts │ │ └── registerPage.test.tsx │ ├── app/ │ │ ├── clientService.ts │ │ ├── dashboard/ │ │ │ ├── add-item/ │ │ │ │ └── page.tsx │ │ │ ├── deleteButton.tsx │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── globals.css │ │ ├── layout.tsx │ │ ├── login/ │ │ │ └── page.tsx │ │ ├── openapi-client/ │ │ │ ├── client/ │ │ │ │ ├── client.gen.ts │ │ │ │ ├── index.ts │ │ │ │ ├── types.gen.ts │ │ │ │ └── utils.gen.ts │ │ │ ├── client.gen.ts │ │ │ ├── core/ │ │ │ │ ├── auth.gen.ts │ │ │ │ ├── bodySerializer.gen.ts │ │ │ │ ├── params.gen.ts │ │ │ │ ├── pathSerializer.gen.ts │ │ │ │ ├── serverSentEvents.gen.ts │ │ │ │ ├── types.gen.ts │ │ │ │ └── utils.gen.ts │ │ │ ├── index.ts │ │ │ ├── sdk.gen.ts │ │ │ └── types.gen.ts │ │ ├── page.tsx │ │ ├── password-recovery/ │ │ │ ├── confirm/ │ │ │ │ └── page.tsx │ │ │ └── page.tsx │ │ └── register/ │ │ └── page.tsx │ ├── components/ │ │ ├── actions/ │ │ │ ├── items-action.ts │ │ │ ├── login-action.ts │ │ │ ├── logout-action.ts │ │ │ ├── password-reset-action.ts │ │ │ └── register-action.ts │ │ ├── page-pagination.tsx │ │ ├── page-size-selector.tsx │ │ └── ui/ │ │ ├── FormError.tsx │ │ ├── avatar.tsx │ │ ├── badge.tsx │ │ ├── breadcrumb.tsx │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── dropdown-menu.tsx │ │ ├── form.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── select.tsx │ │ ├── submitButton.tsx │ │ ├── table.tsx │ │ └── tabs.tsx │ ├── components.json │ ├── eslint.config.mjs │ ├── jest.config.ts │ ├── next.config.mjs │ ├── openapi-ts.config.ts │ ├── openapi.json │ ├── package.json │ ├── pnpm-workspace.yaml │ ├── postcss.config.js │ ├── proxy.ts │ ├── start.sh │ ├── tailwind.config.js │ ├── tsconfig.json │ ├── vercel.json │ └── watcher.js ├── overrides/ │ └── main.html ├── prod-backend-deploy.yml └── prod-frontend-deploy.yml