gitextract_rs686u55/ ├── .copier/ │ ├── .copier-answers.yml.jinja │ └── update_dotenv.py ├── .gitattributes ├── .github/ │ ├── DISCUSSION_TEMPLATE/ │ │ └── questions.yml │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ └── privileged.yml │ ├── dependabot.yml │ ├── labeler.yml │ └── workflows/ │ ├── add-to-project.yml │ ├── deploy-production.yml │ ├── deploy-staging.yml │ ├── detect-conflicts.yml │ ├── issue-manager.yml │ ├── labeler.yml │ ├── latest-changes.yml │ ├── playwright.yml │ ├── pre-commit.yml │ ├── smokeshow.yml │ ├── test-backend.yml │ └── test-docker-compose.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .vscode/ │ └── extensions.json ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── backend/ │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── alembic.ini │ ├── app/ │ │ ├── __init__.py │ │ ├── alembic/ │ │ │ ├── README │ │ │ ├── env.py │ │ │ ├── script.py.mako │ │ │ └── versions/ │ │ │ ├── .keep │ │ │ ├── 1a31ce608336_add_cascade_delete_relationships.py │ │ │ ├── 9c0a54914c78_add_max_length_for_string_varchar_.py │ │ │ ├── d98dd8ec85a3_edit_replace_id_integers_in_all_models_.py │ │ │ ├── e2412789c190_initialize_models.py │ │ │ └── fe56fa70289e_add_created_at_to_user_and_item.py │ │ ├── api/ │ │ │ ├── __init__.py │ │ │ ├── deps.py │ │ │ ├── main.py │ │ │ └── routes/ │ │ │ ├── __init__.py │ │ │ ├── items.py │ │ │ ├── login.py │ │ │ ├── private.py │ │ │ ├── users.py │ │ │ └── utils.py │ │ ├── backend_pre_start.py │ │ ├── core/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ ├── db.py │ │ │ └── security.py │ │ ├── crud.py │ │ ├── email-templates/ │ │ │ ├── build/ │ │ │ │ ├── new_account.html │ │ │ │ ├── reset_password.html │ │ │ │ └── test_email.html │ │ │ └── src/ │ │ │ ├── new_account.mjml │ │ │ ├── reset_password.mjml │ │ │ └── test_email.mjml │ │ ├── initial_data.py │ │ ├── main.py │ │ ├── models.py │ │ ├── tests_pre_start.py │ │ └── utils.py │ ├── pyproject.toml │ ├── scripts/ │ │ ├── format.sh │ │ ├── lint.sh │ │ ├── prestart.sh │ │ ├── test.sh │ │ └── tests-start.sh │ └── tests/ │ ├── __init__.py │ ├── api/ │ │ ├── __init__.py │ │ └── routes/ │ │ ├── __init__.py │ │ ├── test_items.py │ │ ├── test_login.py │ │ ├── test_private.py │ │ └── test_users.py │ ├── conftest.py │ ├── crud/ │ │ ├── __init__.py │ │ └── test_user.py │ ├── scripts/ │ │ ├── __init__.py │ │ ├── test_backend_pre_start.py │ │ └── test_test_pre_start.py │ └── utils/ │ ├── __init__.py │ ├── item.py │ ├── user.py │ └── utils.py ├── compose.override.yml ├── compose.traefik.yml ├── compose.yml ├── copier.yml ├── deployment.md ├── development.md ├── frontend/ │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── Dockerfile.playwright │ ├── README.md │ ├── biome.json │ ├── components.json │ ├── index.html │ ├── nginx-backend-not-found.conf │ ├── nginx.conf │ ├── openapi-ts.config.ts │ ├── package.json │ ├── playwright.config.ts │ ├── src/ │ │ ├── client/ │ │ │ ├── core/ │ │ │ │ ├── ApiError.ts │ │ │ │ ├── ApiRequestOptions.ts │ │ │ │ ├── ApiResult.ts │ │ │ │ ├── CancelablePromise.ts │ │ │ │ ├── OpenAPI.ts │ │ │ │ └── request.ts │ │ │ ├── index.ts │ │ │ ├── schemas.gen.ts │ │ │ ├── sdk.gen.ts │ │ │ └── types.gen.ts │ │ ├── components/ │ │ │ ├── Admin/ │ │ │ │ ├── AddUser.tsx │ │ │ │ ├── DeleteUser.tsx │ │ │ │ ├── EditUser.tsx │ │ │ │ ├── UserActionsMenu.tsx │ │ │ │ └── columns.tsx │ │ │ ├── Common/ │ │ │ │ ├── Appearance.tsx │ │ │ │ ├── AuthLayout.tsx │ │ │ │ ├── DataTable.tsx │ │ │ │ ├── ErrorComponent.tsx │ │ │ │ ├── Footer.tsx │ │ │ │ ├── Logo.tsx │ │ │ │ └── NotFound.tsx │ │ │ ├── Items/ │ │ │ │ ├── AddItem.tsx │ │ │ │ ├── DeleteItem.tsx │ │ │ │ ├── EditItem.tsx │ │ │ │ ├── ItemActionsMenu.tsx │ │ │ │ └── columns.tsx │ │ │ ├── Pending/ │ │ │ │ ├── PendingItems.tsx │ │ │ │ └── PendingUsers.tsx │ │ │ ├── Sidebar/ │ │ │ │ ├── AppSidebar.tsx │ │ │ │ ├── Main.tsx │ │ │ │ └── User.tsx │ │ │ ├── UserSettings/ │ │ │ │ ├── ChangePassword.tsx │ │ │ │ ├── DeleteAccount.tsx │ │ │ │ ├── DeleteConfirmation.tsx │ │ │ │ └── UserInformation.tsx │ │ │ ├── theme-provider.tsx │ │ │ └── ui/ │ │ │ ├── alert.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── button-group.tsx │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── dialog.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── loading-button.tsx │ │ │ ├── pagination.tsx │ │ │ ├── password-input.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── sidebar.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── sonner.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ └── tooltip.tsx │ │ ├── hooks/ │ │ │ ├── useAuth.ts │ │ │ ├── useCopyToClipboard.ts │ │ │ ├── useCustomToast.ts │ │ │ └── useMobile.ts │ │ ├── index.css │ │ ├── lib/ │ │ │ └── utils.ts │ │ ├── main.tsx │ │ ├── routeTree.gen.ts │ │ ├── routes/ │ │ │ ├── __root.tsx │ │ │ ├── _layout/ │ │ │ │ ├── admin.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── items.tsx │ │ │ │ └── settings.tsx │ │ │ ├── _layout.tsx │ │ │ ├── login.tsx │ │ │ ├── recover-password.tsx │ │ │ ├── reset-password.tsx │ │ │ └── signup.tsx │ │ ├── utils.ts │ │ └── vite-env.d.ts │ ├── tests/ │ │ ├── admin.spec.ts │ │ ├── auth.setup.ts │ │ ├── config.ts │ │ ├── items.spec.ts │ │ ├── login.spec.ts │ │ ├── reset-password.spec.ts │ │ ├── sign-up.spec.ts │ │ ├── user-settings.spec.ts │ │ └── utils/ │ │ ├── mailcatcher.ts │ │ ├── privateApi.ts │ │ ├── random.ts │ │ └── user.ts │ ├── tsconfig.build.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── hooks/ │ └── post_gen_project.py ├── package.json ├── pyproject.toml ├── release-notes.md └── scripts/ ├── generate-client.sh ├── test-local.sh └── test.sh