Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ repos:
rev: v6.0.0
hooks:
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- id: end-of-file-fixer
- id: check-yaml
- id: check-toml
Expand Down
1 change: 1 addition & 0 deletions docs/en/contributing/development-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Installing pre-commit hooks...
</div>

This single command:

- Installs the package in editable mode with dev dependencies
- Sets up pre-commit hooks
- Configures development tools
Expand Down
14 changes: 9 additions & 5 deletions docs/en/contributing/template-creation-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ fastapi-{purpose}-{stack}
```

Examples:

- `fastapi-microservice` (Microservice template)
- `fastapi-graphql` (GraphQL integration template)
- `fastapi-auth-jwt` (JWT authentication template)
Expand Down Expand Up @@ -380,9 +381,9 @@ The inspector automatically validates the following items:
#### ✅ Dependencies Validation

- [ ] `fastapi` is declared in at least one of:
- [ ] `pyproject.toml-tpl` under `[project].dependencies` (preferred)
- [ ] `requirements.txt-tpl`
- [ ] `setup.py-tpl` under `install_requires`
- [ ] `pyproject.toml-tpl` under `[project].dependencies` (preferred)
- [ ] `requirements.txt-tpl`
- [ ] `setup.py-tpl` under `install_requires`

#### ✅ FastAPI Implementation Validation

Expand All @@ -400,6 +401,7 @@ The inspector automatically validates the following items:
FastAPI-fastkit includes **automated template testing** that runs comprehensive tests for all templates:

**Test Coverage:**

- ✅ Template creation process
- ✅ Project metadata injection
- ✅ Virtual environment setup
Expand All @@ -425,12 +427,14 @@ New templates are **automatically discovered** and tested without manual configu
4. ✅ **Comprehensive Validation**: Structure, metadata, and functionality checks

**What This Means for You:**

- 🚀 **No Additional Test Files at `FastAPI-fastkit`'s main source testcases**: Your template is tested automatically
- ⚡ **Faster Development**: Focus on template content, not test setup
- 🛡️ **Quality Assurance**: Consistent testing across all templates
- 🔄 **CI/CD Integration**: Automatic testing in pull requests

**Manual Testing Still Required:**

- 🧪 **Template-specific functionality**: Business logic and custom features
- 🔧 **Integration testing**: External services and complex workflows
- 📱 **End-to-end scenarios**: Complete user workflows
Expand Down Expand Up @@ -541,8 +545,8 @@ Closes #issue-number
### Review Process

1. **Automated Validation**: GitHub Actions automatically validates the template
- **Template PR Inspection**: Runs `inspect-changed-templates.py` on PRs modifying templates
- **Weekly Inspection**: Full template validation every Wednesday
- **Template PR Inspection**: Runs `inspect-changed-templates.py` on PRs modifying templates
- **Weekly Inspection**: Full template validation every Wednesday
2. **Code Review**: Maintainers and community review the code
3. **Testing**: Template is tested in various environments
4. **Documentation Review**: Review documentation accuracy and completeness
Expand Down
14 changes: 14 additions & 0 deletions docs/en/contributing/translation-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ The user-facing companion to this policy is the
lists each locale's actual completeness and how MkDocs renders pages
that haven't been translated yet (TL;DR: they fall back to English).

The repository-root `CHANGELOG.md` also remains in English as the
canonical release history. If a locale exposes a `changelog.md` page,
that page should link to or include the canonical English changelog
rather than maintain a separate translated changelog unless project
policy changes later.

When you contribute a translation, also update the status page's table
so users can tell what's available without guessing from the language
switcher.
Expand Down Expand Up @@ -213,6 +219,14 @@ The script will create a Pull Request with the translations. Review the PR:
3. Ensure code examples remain unchanged
4. Check for language-specific issues

### Changelog policy

- Keep the repository-root `CHANGELOG.md` in English.
- Do not open translation PRs whose goal is to rewrite release history
into another language inside the root changelog.
- If a locale needs a changelog page, treat `docs/<locale>/changelog.md`
as a wrapper or entry point for the canonical English changelog.

### 4. Approve and Merge (for maintainers)

Once the translation is verified:
Expand Down
4 changes: 3 additions & 1 deletion docs/en/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,7 @@ Installing dependencies...
</div>

The interactive mode provides:

- **Architecture preset selection** (`minimal` / `single-module` / `classic-layered` / `domain-starter`) that picks the right base template and project layout
- **Guided selection** for databases, authentication, background tasks, caching, monitoring, and more
- **Auto-generated code** for selected features — varies by preset (regenerated `main.py` for `minimal` / `single-module`; preserve template-shipped `main.py` and overlay config modules for `classic-layered` / `domain-starter`)
Expand All @@ -362,7 +363,7 @@ Add a new route endpoint to your FastAPI project with:
<div class="termy">

```console
$ fastkit addroute my-awesome-project user
$ fastkit addroute user my-awesome-project
Adding New Route
┌──────────────────┬──────────────────────────────────────────┐
│ Project │ my-awesome-project │
Expand Down Expand Up @@ -500,6 +501,7 @@ Learn FastAPI development through practical use cases with our pre-built templat
- **[Integrating with MCP](tutorial/mcp-integration.md)** - Create an API server integrated with AI models using the `fastapi-mcp` template

Each tutorial provides:

- ✅ **Practical Examples** - Code you can use directly in real projects
- ✅ **Step-by-Step Guides** - Detailed explanations for beginners to follow easily
- ✅ **Best Practices** - Industry-standard patterns and security considerations
Expand Down
7 changes: 5 additions & 2 deletions docs/en/reference/template-quality-assurance.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,17 +101,20 @@ The automated testing system runs in **CI/CD pipelines**:
### Benefits for Contributors

**Zero Configuration Testing:**

- 🚀 Add new template → automatic testing
- ⚡ No manual test file creation required
- 🛡️ Consistent quality standards

**Comprehensive Coverage:**

- 🔍 End-to-end project creation testing
- 📦 Multi package manager validation
- 🏗️ Complete dependency resolution testing
- ✅ Real-world usage simulation

**Developer Experience:**

- 🎯 **Focus on Template Content**: Testing is automatic
- 🔄 **Immediate Feedback**: Fast test execution
- 📊 **Clear Results**: Detailed test reporting
Expand Down Expand Up @@ -190,8 +193,8 @@ For a template to pass inspection, it must meet these requirements:
- Python files must use `.py-tpl` extension
- Must include a `tests/` directory and a `README.md-tpl` file
- Must include **at least one** metadata file:
- `pyproject.toml-tpl` (preferred, PEP 621), or
- `setup.py-tpl` (legacy, still accepted)
- `pyproject.toml-tpl` (preferred, PEP 621), or
- `setup.py-tpl` (legacy, still accepted)
- `requirements.txt-tpl` is optional when `pyproject.toml-tpl` declares
`[project].dependencies`

Expand Down
44 changes: 34 additions & 10 deletions docs/en/reference/translation-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ The English files live under [`docs/en/`](https://github.com/bnbong/FastAPI-fast
Every other locale (`docs/ko/`, `docs/ja/`, ...) is a translation
target.

The repository-root `CHANGELOG.md` is part of that English source of
truth. Locale-specific `changelog.md` pages may exist as wrappers or
entry points, but they intentionally reuse the canonical English
release history instead of maintaining translated copies.

## Per-locale completeness

The numbers below count Markdown pages in each locale's directory tree
Expand All @@ -29,14 +34,14 @@ next section explains).
| Locale | Status | Markdown pages | Notes |
|---|---|---:|---|
| 🇬🇧 English (`en`) | ✅ Source of truth | 26 / 26 | Authoritative. |
| 🇰🇷 Korean (`ko`) | 🟡 Partial | 2 / 26 | `index.md`, `changelog.md`. Other pages fall back to English. |
| 🇰🇷 Korean (`ko`) | ✅ Complete | 26 / 26 | All locale pages are present. Phase 1: top-level + core user-guide; Phase 2: remaining user-guide + all tutorials; Phase 3: contributing + reference. `docs/ko/changelog.md` intentionally reuses the canonical English `CHANGELOG.md`. |
| 🇯🇵 Japanese (`ja`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
| 🇨🇳 Chinese (`zh`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
| 🇪🇸 Spanish (`es`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
| 🇫🇷 French (`fr`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |
| 🇩🇪 German (`de`) | 🔴 Skeleton | 0 / 26 | Build target only. Every page falls back to English. |

*Snapshot verified 2026-05-06.* These counts are maintained by hand;
*Snapshot verified 2026-05-07; ko row recounted for the current branch after Phase 3 (contributing + reference) landed. Korean now has all locale pages present, while `docs/ko/changelog.md` intentionally points to the canonical English changelog.* These counts are maintained by hand;
to recount the current state from the repo root, run:

```console
Expand Down Expand Up @@ -88,19 +93,38 @@ underlying content actually is.

## How to help

If you'd like to translate a page or fix an existing translation:
The current rollout is **one tracking issue per locale**, with the work
broken into **phases** — for example `ko` is being landed across
Phase 1 (top-level + core user-guide), Phase 2 (remaining user-guide +
all tutorials), Phase 3 (contributing + reference). Each phase ships
as its own PR so reviewers can sign off on a coherent slice without
waiting for the entire locale to be finished.

If you'd like to contribute:

1. Read the [Translation Guide](../contributing/translation-guide.md)
for the workflow, tooling, and style conventions.
2. Translate one page at a time — partial translations are welcome and
merged incrementally.
3. Open a PR adding the new file(s) under `docs/<locale>/<same path>`.
Keep filenames identical to the English source so MkDocs picks them
up automatically.
4. Update this page's table to reflect the new completeness count
2. **Check or open the locale tracking issue first.** If a locale
already has an open tracking issue, claim a phase (or a specific
page within a phase) there so the work doesn't double up. If no
tracking issue exists for the locale you want to work on, open one
that lists which pages belong to which phase, then start with
Phase 1.
3. **One PR per phase is the preferred shape.** Smaller "fix this
single page" PRs are still welcome — especially for correcting an
out-of-sync translation — but for net-new locale work, batching by
phase keeps glossary decisions and cross-link wording consistent
across the slice.
4. Open the PR adding files under `docs/<locale>/<same path>`. Keep
filenames identical to the English source so MkDocs picks them up
automatically.
5. Treat localized changelog pages as wrappers around the canonical
English `CHANGELOG.md` unless project policy explicitly changes.
6. Update this page's table to reflect the new completeness count
(use the recount snippet at the top of this page) and bump the
"Snapshot verified" date so reviewers can see when it was last
reconciled.
reconciled. Note in the "Notes" column which phase has landed if
the locale is still partial.

Bug reports about translated pages going out of sync with the English
source are welcome — please link the English page and the translated
Expand Down
83 changes: 42 additions & 41 deletions docs/en/tutorial/first-project.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,13 @@ Let's add the main resources for our blog API:
<div class="termy">

```console
$ fastkit addroute blog-api users
$ fastkit addroute users blog-api
✨ Successfully added new route 'users' to project 'blog-api'

$ fastkit addroute blog-api posts
$ fastkit addroute posts blog-api
✨ Successfully added new route 'posts' to project 'blog-api'

$ fastkit addroute blog-api comments
$ fastkit addroute comments blog-api
✨ Successfully added new route 'comments' to project 'blog-api'
```

Expand Down Expand Up @@ -985,6 +985,7 @@ Visit [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) to see your compl
- **Items**: Original example endpoints

The documentation shows:

- All available endpoints
- Request/response schemas
- Data validation rules
Expand Down Expand Up @@ -1172,68 +1173,68 @@ Congratulations! You've successfully built a complete blog API with:
### ✅ Features Implemented

- **User Management**
- User registration with validation
- User authentication (login)
- Profile management
- Duplicate prevention
- User registration with validation
- User authentication (login)
- Profile management
- Duplicate prevention

- **Blog Posts**
- Create, read, update, delete posts
- Author-based filtering
- Search functionality
- Publish/draft status
- Create, read, update, delete posts
- Author-based filtering
- Search functionality
- Publish/draft status

- **Comment System**
- Add comments to posts
- View comments by post or author
- Comment management
- Add comments to posts
- View comments by post or author
- Comment management

- **Data Validation**
- Email validation
- Password requirements
- Content length limits
- Required field validation
- Email validation
- Password requirements
- Content length limits
- Required field validation

- **Error Handling**
- Proper HTTP status codes
- Descriptive error messages
- Input validation errors
- Proper HTTP status codes
- Descriptive error messages
- Input validation errors

- **API Documentation**
- Automatic OpenAPI generation
- Interactive testing interface
- Request/response schemas
- Automatic OpenAPI generation
- Interactive testing interface
- Request/response schemas

- **Testing**
- Comprehensive test coverage
- Unit tests for all endpoints
- Edge case testing
- Comprehensive test coverage
- Unit tests for all endpoints
- Edge case testing

## Next Steps

### Potential Enhancements

1. **Real Authentication**
- Implement JWT tokens
- Add password hashing with bcrypt
- Role-based permissions
- Implement JWT tokens
- Add password hashing with bcrypt
- Role-based permissions

2. **Database Integration**
- Use PostgreSQL or MySQL
- Implement proper database models
- Add database migrations
- Use PostgreSQL or MySQL
- Implement proper database models
- Add database migrations

3. **Advanced Features**
- File uploads for images
- Email notifications
- Post categories/tags
- Like/dislike system
- File uploads for images
- Email notifications
- Post categories/tags
- Like/dislike system

4. **Production Readiness**
- Add logging
- Implement caching
- Add rate limiting
- Environment configuration
- Add logging
- Implement caching
- Add rate limiting
- Environment configuration

### Continue Learning

Expand Down
Loading
Loading