Skip to content

Commit f6192b5

Browse files
authored
Merge pull request #57 from bnbong/dev
[DOCS] update docs
2 parents c3b484f + 64691f2 commit f6192b5

11 files changed

Lines changed: 967 additions & 106 deletions

File tree

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ fastkit init --interactive
6767
```
6868
- What it does: Guided step-by-step project setup with intelligent feature selection
6969
- Features:
70+
- **Architecture preset**: `minimal` | `single-module` | `classic-layered` | `domain-starter` (default)
7071
- **Database selection**: PostgreSQL, MySQL, MongoDB, Redis, SQLite
7172
- **Authentication**: JWT, OAuth2, FastAPI-Users, Session-based
7273
- **Background tasks**: Celery, Dramatiq
@@ -77,10 +78,10 @@ fastkit init --interactive
7778
- **Deployment**: Docker, docker-compose with auto-generated configs
7879
- **Package manager**: pip, uv, pdm, poetry
7980
- **Custom packages**: Add your own dependencies
80-
- Auto-generates:
81-
- `main.py` with selected features integrated
82-
- Database and authentication configuration files
83-
- Docker deployment files (Dockerfile, docker-compose.yml)
81+
- Auto-generates (varies by preset — see [the matrix](https://bnbong.github.io/FastAPI-fastkit/reference/preset-feature-matrix/) for details):
82+
- `main.py` regenerated from selected features for `minimal` / `single-module`; preserved as-shipped for `classic-layered` / `domain-starter`
83+
- Database and authentication configuration files at preset-specific paths
84+
- Docker deployment files (`Dockerfile`, `docker-compose.yml`) with the preset's correct uvicorn entrypoint
8485
- Test configuration (pytest with coverage)
8586

8687
### Create a project from a template
@@ -121,9 +122,11 @@ fastkit deleteproject <project_name>
121122

122123
For comprehensive guides and detailed usage instructions, visit our documentation:
123124

125+
- 🧭 **[Which starter should I choose?](https://bnbong.github.io/FastAPI-fastkit/user-guide/choosing-a-starter/)** - Beginner decision guide for `startdemo` templates and interactive presets
124126
- 📚 **[User Guide](https://bnbong.github.io/FastAPI-fastkit/user-guide/quick-start/)** - Detailed installation and usage guides
125127
- 🎯 **[Tutorial](https://bnbong.github.io/FastAPI-fastkit/tutorial/getting-started/)** - Step-by-step tutorials for beginners
126128
- 📖 **[CLI Reference](https://bnbong.github.io/FastAPI-fastkit/user-guide/cli-reference/)** - Complete command reference
129+
- 🧱 **[Architecture Preset Matrix](https://bnbong.github.io/FastAPI-fastkit/reference/preset-feature-matrix/)** - Per-preset / per-feature contract for interactive generation
127130
- 🔍 **[Template Quality Assurance](https://bnbong.github.io/FastAPI-fastkit/reference/template-quality-assurance/)** - Automated testing and quality standards
128131

129132
## Contributing

docs/en/contributing/translation-guide.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22

33
This guide explains how to contribute translations for FastAPI-fastkit documentation.
44

5+
## Source of truth and translation policy
6+
7+
> **English (`en`) is the canonical source of truth** for FastAPI-fastkit
8+
> documentation. Every other locale is a translation target that may
9+
> lag behind English by a release or by individual pages.
10+
>
11+
> If a translated page disagrees with the English page, **trust the
12+
> English page** until the translation catches up. Translations are
13+
> shipped at whatever completeness contributors have reached — partial
14+
> coverage is normal and expected.
15+
16+
The user-facing companion to this policy is the
17+
[Translation Status](../reference/translation-status.md) page, which
18+
lists each locale's actual completeness and how MkDocs renders pages
19+
that haven't been translated yet (TL;DR: they fall back to English).
20+
21+
When you contribute a translation, also update the status page's table
22+
so users can tell what's available without guessing from the language
23+
switcher.
24+
525
## Overview
626

727
FastAPI-fastkit uses an automated translation system powered by AI to translate documentation into multiple languages. The system:
@@ -11,9 +31,16 @@ FastAPI-fastkit uses an automated translation system powered by AI to translate
1131
- Saves translations to language-specific directories
1232
- Creates GitHub Pull Requests for review
1333

34+
The automation produces a starting point; human review is still
35+
required before merging. AI-generated translations should be flagged as
36+
"draft" in their PRs and reviewed by a fluent speaker before landing.
37+
1438
## Supported Languages
1539

16-
Currently supported languages:
40+
These are the locales the docs site currently **builds**. Build target
41+
configuration alone does **not** mean a locale's pages are translated —
42+
see [Translation Status](../reference/translation-status.md) for actual
43+
per-locale completeness.
1744

1845
- 🇰🇷 Korean (ko)
1946
- 🇯🇵 Japanese (ja)

docs/en/index.md

Lines changed: 66 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ This project was created to speed up the configuration of the development enviro
2222

2323
This project was inspired by the `SpringBoot initializer` & Python Django's `django-admin` cli operation.
2424

25+
!!! info "Translation status"
26+
English is the source of truth for these docs. Other languages in
27+
the language switcher may be partial or fall back to English page by
28+
page. See [Translation Status](reference/translation-status.md) for
29+
each locale's actual completeness.
30+
2531
## Key Features
2632

2733
- **⚡ Immediate FastAPI project creation** : Super-fast FastAPI workspace & project creation via CLI, inspired by `django-admin` feature of [Python Django](https://github.com/django/django)
@@ -275,35 +281,54 @@ Select package manager (pip, uv, pdm, poetry): uv
275281
📝 Custom Packages (optional)
276282
Enter custom package names (comma-separated, press Enter to skip):
277283

278-
───────────────── Selected Configuration ─────────────────
279-
Project: my-fullstack-project
280-
Database: PostgreSQL
281-
Authentication: JWT
282-
Background Tasks: Celery
283-
Caching: Redis
284-
Monitoring: Prometheus
285-
Testing: Coverage
286-
Utilities: CORS
287-
Deployment: Docker, docker-compose
288-
Package Manager: uv
289-
──────────────────────────────────────────────────────────
284+
📋 Project Configuration Summary
285+
┌─────────────────────┬───────────────────────────────────────────────────────────────────────────┐
286+
│ Setting │ Value │
287+
├─────────────────────┼───────────────────────────────────────────────────────────────────────────┤
288+
│ Project Name │ my-fullstack-project │
289+
│ Author │ John Doe │
290+
│ Email │ john@example.com │
291+
│ Description │ Full-stack FastAPI project with PostgreSQL and JWT │
292+
│ Architecture Preset │ domain-starter — Domain-oriented: src/app/domains/<concept>/ (recommended)│
293+
│ Database │ PostgreSQL │
294+
│ Authentication │ JWT │
295+
│ Async Tasks │ Celery │
296+
│ Caching │ Redis │
297+
│ Monitoring │ Prometheus │
298+
│ Testing │ Coverage │
299+
│ Utilities │ CORS │
300+
│ Package Manager │ uv │
301+
└─────────────────────┴───────────────────────────────────────────────────────────────────────────┘
302+
303+
Total dependencies to install: 18
290304

291305
Proceed with project creation? [Y/n]: y
292306

307+
╭──────────────────────── Info ────────────────────────╮
308+
│ ℹ Injected metadata into pyproject.toml │
309+
╰──────────────────────────────────────────────────────╯
293310
╭─────────────────────── Success ───────────────────────╮
294-
│ ✨ Generated main.py with selected features │
295-
╰───────────────────────────────────────────────────────╯
296-
╭─────────────────────── Success ───────────────────────╮
297-
│ ✨ Generated database configuration │
311+
│ ✨ Generated dependency file with 18 packages │
298312
╰───────────────────────────────────────────────────────╯
313+
╭──────────────────────── Info ────────────────────────╮
314+
│ ℹ Preserving template-shipped main.py for preset │
315+
│ 'domain-starter'. │
316+
╰──────────────────────────────────────────────────────╯
299317
╭─────────────────────── Success ───────────────────────╮
300-
│ ✨ Generated authentication configuration
318+
│ ✨ Generated Docker deployment files
301319
╰───────────────────────────────────────────────────────╯
302-
╭─────────────────────── Success ───────────────────────╮
303-
│ ✨ Generated test configuration │
320+
╭────────────────────── Warning ────────────────────────╮
321+
│ ⚠ Preset compatibility │
322+
│ fastapi-domain-starter's shipped src/app/main.py is │
323+
│ preserved. The selections below need manual wiring │
324+
│ there (CORS is already wired — set │
325+
│ BACKEND_CORS_ORIGINS in .env to activate it). │
326+
│ Affected selections (packages installed, but no │
327+
│ dynamic main.py edits applied for the │
328+
│ 'domain-starter' preset): Prometheus │
304329
╰───────────────────────────────────────────────────────╯
305330
╭─────────────────────── Success ───────────────────────╮
306-
│ ✨ Generated Docker deployment files
331+
│ ✨ Generated configuration files for selected stack
307332
╰───────────────────────────────────────────────────────╯
308333

309334
Creating virtual environment...
@@ -312,27 +337,21 @@ Installing dependencies...
312337
----> 100%
313338

314339
╭─────────────────────── Success ───────────────────────╮
315-
│ ✨ FastAPI project 'my-fullstack-project' created! │
316-
│ │
317-
│ Generated files: │
318-
│ • main.py (with all selected features) │
319-
│ • src/config/database.py │
320-
│ • src/config/auth.py │
321-
│ • tests/conftest.py │
322-
│ • Dockerfile │
323-
│ • docker-compose.yml │
324-
│ • pyproject.toml / requirements.txt │
340+
│ ✨ FastAPI project 'my-fullstack-project' from │
341+
│ 'fastapi-domain-starter' has been created! │
325342
╰───────────────────────────────────────────────────────╯
326343
```
327344

328345
</div>
329346

330347
The interactive mode provides:
348+
- **Architecture preset selection** (`minimal` / `single-module` / `classic-layered` / `domain-starter`) that picks the right base template and project layout
331349
- **Guided selection** for databases, authentication, background tasks, caching, monitoring, and more
332-
- **Auto-generated code** for selected features (main.py, config files, Docker files)
350+
- **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`)
351+
- **Preset-aware Docker generation** — the generated `Dockerfile` `CMD` targets the preset's actual entrypoint (`src.main:app` or `src.app.main:app`)
333352
- **Smart dependency management** with automatic pip compatibility
334-
- **Feature validation** to prevent incompatible combinations
335-
- **Always Empty project** as base for maximum flexibility
353+
- **Feature validation** with manual-wiring warnings for selections the preset cannot auto-wire
354+
- **Identity markers** in the generated `pyproject.toml` (description marker + `[tool.fastapi-fastkit]` table) so `is_fastkit_project()` can recognize generated projects later
336355

337356
### Add a new route to the FastAPI project
338357

@@ -434,18 +453,19 @@ To view the list of available FastAPI demos, check with:
434453

435454
```console
436455
$ fastkit list-templates
437-
Available Templates
438-
┌─────────────────────────┬───────────────────────────────────┐
439-
│ fastapi-custom-response │ Async Item Management API with │
440-
│ │ Custom Response System │
441-
│ fastapi-dockerized │ Dockerized FastAPI Item │
442-
│ │ Management API │
443-
│ fastapi-empty │ No description │
444-
│ fastapi-async-crud │ Async Item Management API Server │
445-
│ fastapi-psql-orm │ Dockerized FastAPI Item │
446-
│ │ Management API with PostgreSQL │
447-
│ fastapi-default │ Simple FastAPI Project │
448-
└─────────────────────────┴───────────────────────────────────┘
456+
Available Templates
457+
┌────────────────────────┬───────────────────────────────────────────────────────┐
458+
│ fastapi-custom-response│ Async Item Management API with Custom Response System │
459+
│ fastapi-mcp │ FastAPI MCP Project │
460+
│ fastapi-domain-starter │ FastAPI Domain Starter │
461+
│ fastapi-dockerized │ Dockerized FastAPI Item Management API │
462+
│ fastapi-empty │ Minimal FastAPI Template │
463+
│ fastapi-async-crud │ Async Item Management API Server │
464+
│ fastapi-psql-orm │ Dockerized FastAPI Item Management API with │
465+
│ │ PostgreSQL │
466+
│ fastapi-default │ Simple FastAPI Project │
467+
│ fastapi-single-module │ FastAPI Single Module Template │
468+
└────────────────────────┴───────────────────────────────────────────────────────┘
449469
```
450470

451471
</div>
@@ -467,6 +487,7 @@ Learn FastAPI development through practical use cases with our pre-built templat
467487

468488
- **[Building a Basic API Server](tutorial/basic-api-server.md)** - Create your first FastAPI server using the `fastapi-default` template
469489
- **[Building an Asynchronous CRUD API](tutorial/async-crud-api.md)** - Develop a high-performance async API with the `fastapi-async-crud` template
490+
- **[Domain-oriented Project (Domain Starter)](tutorial/domain-starter.md)** - Build a medium-sized API with the `fastapi-domain-starter` template, the recommended modern default
470491

471492
### 🗄️ Database & Infrastructure
472493

0 commit comments

Comments
 (0)