fastapi-fullstack 0.1.1__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/PKG-INFO +24 -26
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/README.md +20 -22
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/pyproject.toml +5 -5
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/.gitignore +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/LICENSE +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/fastapi_gen/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/fastapi_gen/cli.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/fastapi_gen/config.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/fastapi_gen/generator.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/fastapi_gen/prompts.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/cookiecutter.json +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/hooks/post_gen_project.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/.env.example +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/.gitignore +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/CLAUDE.md +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/Makefile +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/README.md +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/.dockerignore +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/.pre-commit-config.yaml +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/Dockerfile +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/alembic/env.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/alembic/script.py.mako +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/.gitkeep +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/alembic.ini +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/admin.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/agents/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/agents/assistant.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/datetime_tool.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/deps.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/exception_handlers.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/router.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/agent.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/auth.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/conversations.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/health.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/items.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/oauth.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/sessions.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/users.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/webhooks.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/ws.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/api/versioning.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/clients/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/clients/redis.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/commands/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/commands/cleanup.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/commands/example.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/commands/seed.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/cache.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/config.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/csrf.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/exceptions.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/logfire_setup.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/middleware.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/oauth.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/rate_limit.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/sanitize.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/core/security.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/base.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/models/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/models/item.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/models/session.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/models/user.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/models/webhook.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/db/session.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/main.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/pipelines/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/pipelines/base.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/repositories/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/repositories/base.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/repositories/item.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/repositories/session.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/repositories/user.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/repositories/webhook.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/base.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/item.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/session.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/token.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/user.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/schemas/webhook.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/services/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/services/conversation.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/services/item.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/services/session.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/services/user.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/services/webhook.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/worker/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/worker/celery_app.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/worker/taskiq_app.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/examples.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/schedules.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/taskiq_examples.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/cli/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/cli/commands.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/pyproject.toml +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/scripts/.gitkeep +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/api/__init__.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_auth.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_exceptions.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_health.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_items.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_users.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/conftest.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_agents.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_clients.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_commands.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_core.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_pipelines.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_repositories.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_security.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_services.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/backend/tests/test_worker.py +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/docker-compose.dev.yml +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/docker-compose.frontend.yml +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/docker-compose.prod.yml +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/docker-compose.yml +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/.env.example +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/.gitignore +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/.prettierignore +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/.prettierrc +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/Dockerfile +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/README.md +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.setup.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.spec.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/e2e/chat.spec.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/e2e/home.spec.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/instrumentation.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/messages/en.json +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/messages/pl.json +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/next.config.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/package.json +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/playwright.config.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/(auth)/layout.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/(auth)/login/page.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/(auth)/register/page.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/(dashboard)/chat/page.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/(dashboard)/dashboard/page.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/(dashboard)/layout.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/(dashboard)/profile/page.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/login/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/logout/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/me/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/oauth-callback/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/refresh/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/register/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/messages/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/health/route.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/auth/callback/page.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/globals.css +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/layout.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/page.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/app/providers.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/login-form.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/register-form.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-container.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-input.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/conversation-sidebar.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-item.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-list.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-call-card.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/google-icon.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/language-switcher.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/header.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/sidebar.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-provider.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-toggle.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/badge.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.test.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/card.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/input.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/label.tsx +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-auth.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-chat.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversations.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-websocket.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/i18n.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/lib/api-client.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/lib/constants.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/lib/server-api.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.test.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/middleware.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.test.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-store.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/stores/conversation-store.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/stores/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/stores/theme-store.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/types/api.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/types/auth.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/types/chat.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/types/conversation.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/src/types/index.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/tsconfig.json +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/vitest.config.ts +0 -0
- {fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/frontend/vitest.setup.ts +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-fullstack
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Interactive FastAPI project generator with Logfire observability
|
|
5
|
-
Project-URL: Homepage, https://github.com/
|
|
6
|
-
Project-URL: Documentation, https://github.com/
|
|
7
|
-
Project-URL: Repository, https://github.com/
|
|
5
|
+
Project-URL: Homepage, https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template
|
|
6
|
+
Project-URL: Documentation, https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template#readme
|
|
7
|
+
Project-URL: Repository, https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template
|
|
8
8
|
Author-email: Your Name <your@email.com>
|
|
9
9
|
License: MIT
|
|
10
10
|
License-File: LICENSE
|
|
@@ -39,7 +39,7 @@ Description-Content-Type: text/markdown
|
|
|
39
39
|
<a href="https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-fastapi-nextjs-llm-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
|
|
40
40
|
<a href="https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vstorm-co/full-stack-fastapi-nextjs-llm-template?color=blue" alt="License"></a>
|
|
41
41
|
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue?logo=python&logoColor=white" alt="Python"></a>
|
|
42
|
-
<a href="https://pypi.org/project/fastapi-
|
|
42
|
+
<a href="https://pypi.org/project/fastapi-fullstack/"><img src="https://img.shields.io/pypi/v/fastapi-fullstack?color=green&logo=pypi&logoColor=white" alt="PyPI"></a>
|
|
43
43
|
<img src="https://img.shields.io/badge/integrations-20%2B-brightgreen" alt="20+ Integrations">
|
|
44
44
|
</p>
|
|
45
45
|
|
|
@@ -58,20 +58,6 @@ Description-Content-Type: text/markdown
|
|
|
58
58
|
<a href="#-documentation">Documentation</a>
|
|
59
59
|
</p>
|
|
60
60
|
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Star History
|
|
64
|
-
|
|
65
|
-
<a href="https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&legend=top-left">
|
|
66
|
-
<picture>
|
|
67
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&theme=dark" />
|
|
68
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
69
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
70
|
-
</picture>
|
|
71
|
-
</a>
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
61
|
## 🎯 Why This Template
|
|
76
62
|
|
|
77
63
|
Building AI/LLM applications requires more than just an API wrapper. You need:
|
|
@@ -201,23 +187,23 @@ See [Architecture Documentation](./docs/architecture.md) for details.
|
|
|
201
187
|
|
|
202
188
|
```bash
|
|
203
189
|
# pip
|
|
204
|
-
pip install fastapi-
|
|
190
|
+
pip install fastapi-fullstack
|
|
205
191
|
|
|
206
192
|
# uv (recommended)
|
|
207
|
-
uv tool install fastapi-
|
|
193
|
+
uv tool install fastapi-fullstack
|
|
208
194
|
|
|
209
195
|
# pipx
|
|
210
|
-
pipx install fastapi-
|
|
196
|
+
pipx install fastapi-fullstack
|
|
211
197
|
```
|
|
212
198
|
|
|
213
199
|
### Create Your Project
|
|
214
200
|
|
|
215
201
|
```bash
|
|
216
202
|
# Interactive wizard (recommended)
|
|
217
|
-
fastapi-
|
|
203
|
+
fastapi-fullstack new
|
|
218
204
|
|
|
219
205
|
# Quick mode with options
|
|
220
|
-
fastapi-
|
|
206
|
+
fastapi-fullstack create my_ai_app \
|
|
221
207
|
--database postgresql \
|
|
222
208
|
--auth jwt \
|
|
223
209
|
--frontend nextjs
|
|
@@ -352,7 +338,7 @@ graph LR
|
|
|
352
338
|
Enable Logfire and select which components to instrument:
|
|
353
339
|
|
|
354
340
|
```bash
|
|
355
|
-
fastapi-
|
|
341
|
+
fastapi-fullstack new
|
|
356
342
|
# ✓ Enable Logfire observability
|
|
357
343
|
# ✓ Instrument FastAPI
|
|
358
344
|
# ✓ Instrument Database
|
|
@@ -491,7 +477,7 @@ my_project/
|
|
|
491
477
|
Select what you need:
|
|
492
478
|
|
|
493
479
|
```bash
|
|
494
|
-
fastapi-
|
|
480
|
+
fastapi-fullstack new
|
|
495
481
|
# ✓ Redis (caching/sessions)
|
|
496
482
|
# ✓ Rate limiting (slowapi)
|
|
497
483
|
# ✓ Pagination (fastapi-pagination)
|
|
@@ -519,6 +505,18 @@ fastapi-gen new
|
|
|
519
505
|
|
|
520
506
|
---
|
|
521
507
|
|
|
508
|
+
## Star History
|
|
509
|
+
|
|
510
|
+
<a href="https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&legend=top-left">
|
|
511
|
+
<picture>
|
|
512
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&theme=dark" />
|
|
513
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
514
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
515
|
+
</picture>
|
|
516
|
+
</a>
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
522
520
|
## 🙏 Inspiration
|
|
523
521
|
|
|
524
522
|
This project is inspired by:
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<a href="https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-fastapi-nextjs-llm-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
|
|
5
5
|
<a href="https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vstorm-co/full-stack-fastapi-nextjs-llm-template?color=blue" alt="License"></a>
|
|
6
6
|
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue?logo=python&logoColor=white" alt="Python"></a>
|
|
7
|
-
<a href="https://pypi.org/project/fastapi-
|
|
7
|
+
<a href="https://pypi.org/project/fastapi-fullstack/"><img src="https://img.shields.io/pypi/v/fastapi-fullstack?color=green&logo=pypi&logoColor=white" alt="PyPI"></a>
|
|
8
8
|
<img src="https://img.shields.io/badge/integrations-20%2B-brightgreen" alt="20+ Integrations">
|
|
9
9
|
</p>
|
|
10
10
|
|
|
@@ -23,20 +23,6 @@
|
|
|
23
23
|
<a href="#-documentation">Documentation</a>
|
|
24
24
|
</p>
|
|
25
25
|
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Star History
|
|
29
|
-
|
|
30
|
-
<a href="https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&legend=top-left">
|
|
31
|
-
<picture>
|
|
32
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&theme=dark" />
|
|
33
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
34
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
35
|
-
</picture>
|
|
36
|
-
</a>
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
26
|
## 🎯 Why This Template
|
|
41
27
|
|
|
42
28
|
Building AI/LLM applications requires more than just an API wrapper. You need:
|
|
@@ -166,23 +152,23 @@ See [Architecture Documentation](./docs/architecture.md) for details.
|
|
|
166
152
|
|
|
167
153
|
```bash
|
|
168
154
|
# pip
|
|
169
|
-
pip install fastapi-
|
|
155
|
+
pip install fastapi-fullstack
|
|
170
156
|
|
|
171
157
|
# uv (recommended)
|
|
172
|
-
uv tool install fastapi-
|
|
158
|
+
uv tool install fastapi-fullstack
|
|
173
159
|
|
|
174
160
|
# pipx
|
|
175
|
-
pipx install fastapi-
|
|
161
|
+
pipx install fastapi-fullstack
|
|
176
162
|
```
|
|
177
163
|
|
|
178
164
|
### Create Your Project
|
|
179
165
|
|
|
180
166
|
```bash
|
|
181
167
|
# Interactive wizard (recommended)
|
|
182
|
-
fastapi-
|
|
168
|
+
fastapi-fullstack new
|
|
183
169
|
|
|
184
170
|
# Quick mode with options
|
|
185
|
-
fastapi-
|
|
171
|
+
fastapi-fullstack create my_ai_app \
|
|
186
172
|
--database postgresql \
|
|
187
173
|
--auth jwt \
|
|
188
174
|
--frontend nextjs
|
|
@@ -317,7 +303,7 @@ graph LR
|
|
|
317
303
|
Enable Logfire and select which components to instrument:
|
|
318
304
|
|
|
319
305
|
```bash
|
|
320
|
-
fastapi-
|
|
306
|
+
fastapi-fullstack new
|
|
321
307
|
# ✓ Enable Logfire observability
|
|
322
308
|
# ✓ Instrument FastAPI
|
|
323
309
|
# ✓ Instrument Database
|
|
@@ -456,7 +442,7 @@ my_project/
|
|
|
456
442
|
Select what you need:
|
|
457
443
|
|
|
458
444
|
```bash
|
|
459
|
-
fastapi-
|
|
445
|
+
fastapi-fullstack new
|
|
460
446
|
# ✓ Redis (caching/sessions)
|
|
461
447
|
# ✓ Rate limiting (slowapi)
|
|
462
448
|
# ✓ Pagination (fastapi-pagination)
|
|
@@ -484,6 +470,18 @@ fastapi-gen new
|
|
|
484
470
|
|
|
485
471
|
---
|
|
486
472
|
|
|
473
|
+
## Star History
|
|
474
|
+
|
|
475
|
+
<a href="https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&legend=top-left">
|
|
476
|
+
<picture>
|
|
477
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date&theme=dark" />
|
|
478
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
479
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=Date" />
|
|
480
|
+
</picture>
|
|
481
|
+
</a>
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
487
485
|
## 🙏 Inspiration
|
|
488
486
|
|
|
489
487
|
This project is inspired by:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fastapi-fullstack"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.2"
|
|
4
4
|
description = "Interactive FastAPI project generator with Logfire observability"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -38,12 +38,12 @@ dev = [
|
|
|
38
38
|
]
|
|
39
39
|
|
|
40
40
|
[project.scripts]
|
|
41
|
-
fastapi-
|
|
41
|
+
fastapi-fullstack = "fastapi_gen.cli:main"
|
|
42
42
|
|
|
43
43
|
[project.urls]
|
|
44
|
-
Homepage = "https://github.com/
|
|
45
|
-
Documentation = "https://github.com/
|
|
46
|
-
Repository = "https://github.com/
|
|
44
|
+
Homepage = "https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template"
|
|
45
|
+
Documentation = "https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template#readme"
|
|
46
|
+
Repository = "https://github.com/vstorm-co/full-stack-fastapi-nextjs-llm-template"
|
|
47
47
|
|
|
48
48
|
[build-system]
|
|
49
49
|
requires = ["hatchling"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/CLAUDE.md
RENAMED
|
File without changes
|
{fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/Makefile
RENAMED
|
File without changes
|
{fastapi_fullstack-0.1.1 → fastapi_fullstack-0.1.2}/template/{{cookiecutter.project_slug}}/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|