@@ -26,219 +26,66 @@ This project was inspired by the `SpringBoot initializer` & Python Django's `dja
26
26
- ** 📋 Standards-based FastAPI project templates** : All FastAPI-fastkit templates are based on Python standards and FastAPI's common use patterns
27
27
- ** 🔍 Automated template quality assurance** : Weekly automated testing ensures all templates remain functional and up-to-date
28
28
- ** 🚀 Multiple project templates** : Choose from various pre-configured templates for different use cases (async CRUD, Docker, PostgreSQL, etc.)
29
+ - ** 📦 Multiple package manager support** : Choose your preferred Python package manager (pip, uv, pdm, poetry) for dependency management
29
30
30
31
## Installation
31
32
32
33
Install ` FastAPI-fastkit ` at your Python environment.
33
34
34
35
``` console
35
36
$ pip install FastAPI-fastkit
36
- ---> 100%
37
37
```
38
38
39
39
40
40
## Usage
41
41
42
- ### Create a new FastAPI project workspace environment immediately
43
-
44
- You can now start new FastAPI project really fast with FastAPI-fastkit!
45
-
46
- Create a new FastAPI project workspace immediately with:
42
+ - Global options
43
+ - ` --help ` : Show help
44
+ - ` --version ` : Show version
45
+ - ` --debug/--no-debug ` : Toggle debug mode
47
46
47
+ ### Create a new FastAPI project
48
48
``` console
49
- $ fastkit init
50
- Enter the project name: my-awesome-project
51
- Enter the author name: John Doe
52
- Enter the author email: john@example.com
53
- Enter the project description: My awesome FastAPI project
54
-
55
- Project Information
56
- ┌──────────────┬────────────────────────────┐
57
- │ Project Name │ my-awesome-project │
58
- │ Author │ John Doe │
59
- │ Author Email │ john@example.com │
60
- │ Description │ My awesome FastAPI project │
61
- └──────────────┴────────────────────────────┘
62
-
63
- Available Stacks and Dependencies:
64
- MINIMAL Stack
65
- ┌──────────────┬───────────────────┐
66
- │ Dependency 1 │ fastapi │
67
- │ Dependency 2 │ uvicorn │
68
- │ Dependency 3 │ pydantic │
69
- │ Dependency 4 │ pydantic-settings │
70
- └──────────────┴───────────────────┘
71
-
72
- STANDARD Stack
73
- ┌──────────────┬───────────────────┐
74
- │ Dependency 1 │ fastapi │
75
- │ Dependency 2 │ uvicorn │
76
- │ Dependency 3 │ sqlalchemy │
77
- │ Dependency 4 │ alembic │
78
- │ Dependency 5 │ pytest │
79
- │ Dependency 6 │ pydantic │
80
- │ Dependency 7 │ pydantic-settings │
81
- └──────────────┴───────────────────┘
82
-
83
- FULL Stack
84
- ┌──────────────┬───────────────────┐
85
- │ Dependency 1 │ fastapi │
86
- │ Dependency 2 │ uvicorn │
87
- │ Dependency 3 │ sqlalchemy │
88
- │ Dependency 4 │ alembic │
89
- │ Dependency 5 │ pytest │
90
- │ Dependency 6 │ redis │
91
- │ Dependency 7 │ celery │
92
- │ Dependency 8 │ pydantic │
93
- │ Dependency 9 │ pydantic-settings │
94
- └──────────────┴───────────────────┘
95
-
96
- Select stack (minimal, standard, full): minimal
97
- Do you want to proceed with project creation? [y/N]: y
98
- FastAPI project will deploy at '~your-project-path~'
99
-
100
- ╭──────────────────────── Info ────────────────────────╮
101
- │ ℹ Injected metadata into setup.py │
102
- ╰──────────────────────────────────────────────────────╯
103
- ╭──────────────────────── Info ────────────────────────╮
104
- │ ℹ Injected metadata into config file │
105
- ╰──────────────────────────────────────────────────────╯
106
-
107
- Creating Project:
108
- my-awesome-project
109
- ┌───────────────────┬───────────┐
110
- │ Component │ Collected │
111
- │ fastapi │ ✓ │
112
- │ uvicorn │ ✓ │
113
- │ pydantic │ ✓ │
114
- │ pydantic-settings │ ✓ │
115
- └───────────────────┴───────────┘
116
-
117
- Creating virtual environment...
118
-
119
- ╭──────────────────────── Info ────────────────────────╮
120
- │ ℹ venv created at │
121
- │ ~your-project-path~/my-awesome-project/.venv │
122
- │ To activate the virtual environment, run: │
123
- │ │
124
- │ source │
125
- │ ~your-project-path~/my-awesome-project/.venv/bin/act │
126
- │ ivate │
127
- ╰──────────────────────────────────────────────────────╯
128
-
129
- Installing dependencies...
130
- ⠙ Setting up project environment...Collecting <packages~>
131
-
132
- ---> 100%
133
-
134
- ╭─────────────────────── Success ───────────────────────╮
135
- │ ✨ Dependencies installed successfully │
136
- ╰───────────────────────────────────────────────────────╯
137
- ╭─────────────────────── Success ───────────────────────╮
138
- │ ✨ FastAPI project 'my-awesome-project' has been │
139
- │ created successfully and saved to │
140
- │ ~your-project-path~! │
141
- ╰───────────────────────────────────────────────────────╯
142
- ╭──────────────────────── Info ────────────────────────╮
143
- │ ℹ To start your project, run 'fastkit runserver' at │
144
- │ newly created FastAPI project directory │
145
- ╰──────────────────────────────────────────────────────╯
49
+ fastkit init [OPTIONS]
146
50
```
51
+ - What it does: Scaffolds an empty FastAPI project, creates a virtual environment, installs dependencies
52
+ - Key options:
53
+ - ` --project-name ` , ` --author ` , ` --author-email ` , ` --description `
54
+ - ` --package-manager ` [ pip|uv|pdm|poetry]
55
+ - Stack selection: ` minimal ` | ` standard ` | ` full ` (interactive)
147
56
148
- This command will create a new FastAPI project workspace environment with Python virtual environment.
149
-
150
- ### Add a new route to the FastAPI project
151
-
152
- ` FastAPI-fastkit ` makes it easy to expand your FastAPI project.
153
-
154
- Add a new route endpoint to your FastAPI project with:
155
-
57
+ ### Create a project from a template
156
58
``` console
157
- $ fastkit addroute my-awesome-project user
158
- Adding New Route
159
- ┌──────────────────┬──────────────────────────────────────────┐
160
- │ Project │ my-awesome-project │
161
- │ Route Name │ user │
162
- │ Target Directory │ ~your-project-path~ │
163
- └──────────────────┴──────────────────────────────────────────┘
164
-
165
- Do you want to add route 'user' to project 'my-awesome-project'? [Y/n]: y
166
-
167
- ╭──────────────────────── Info ────────────────────────╮
168
- │ ℹ Updated main.py to include the API router │
169
- ╰──────────────────────────────────────────────────────╯
170
- ╭─────────────────────── Success ───────────────────────╮
171
- │ ✨ Successfully added new route 'user' to project │
172
- │ `my-awesome-project` │
173
- ╰───────────────────────────────────────────────────────╯
59
+ fastkit startdemo [TEMPLATE] [OPTIONS]
174
60
```
61
+ - What it does: Creates a project from a template (e.g., ` fastapi-default ` ) and installs dependencies
62
+ - Key options:
63
+ - ` --project-name ` , ` --author ` , ` --author-email ` , ` --description `
64
+ - ` --package-manager ` [ pip|uv|pdm|poetry]
65
+ - Tip: List available templates with ` fastkit list-templates `
175
66
176
- ### Place a structured FastAPI demo project immediately
177
-
178
- You can also start with a structured FastAPI demo project.
179
-
180
- Demo projects are consist of various tech stacks with simple item CRUD endpoints implemented.
181
-
182
- Place a structured FastAPI demo project immediately with:
67
+ ### Add a new route
68
+ ``` console
69
+ fastkit addroute <project_name> <route_name>
70
+ ```
71
+ - What it does: Adds a new API route to the specified project
183
72
73
+ ### Run the development server
184
74
``` console
185
- $ fastkit startdemo
186
- Enter the project name: my-awesome-demo
187
- Enter the author name: John Doe
188
- Enter the author email: john@example.com
189
- Enter the project description: My awesome FastAPI demo
190
- Deploying FastAPI project using 'fastapi-default' template
191
- Template path:
192
- /~fastapi_fastkit-package-path~/fastapi_project_template/fastapi-default
193
-
194
- Project Information
195
- ┌──────────────┬─────────────────────────┐
196
- │ Project Name │ my-awesome-demo │
197
- │ Author │ John Doe │
198
- │ Author Email │ john@example.com │
199
- │ Description │ My awesome FastAPI demo │
200
- └──────────────┴─────────────────────────┘
201
-
202
- Template Dependencies
203
- ┌──────────────┬───────────────────┐
204
- │ Dependency 1 │ fastapi │
205
- │ Dependency 2 │ uvicorn │
206
- │ Dependency 3 │ pydantic │
207
- │ Dependency 4 │ pydantic-settings │
208
- │ Dependency 5 │ python-dotenv │
209
- └──────────────┴───────────────────┘
210
-
211
- Do you want to proceed with project creation? [y/N]: y
212
- FastAPI template project will deploy at '~your-project-path~'
213
-
214
- ---> 100%
215
-
216
- ╭─────────────────────── Success ───────────────────────╮
217
- │ ✨ Dependencies installed successfully │
218
- ╰───────────────────────────────────────────────────────╯
219
- ╭─────────────────────── Success ───────────────────────╮
220
- │ ✨ FastAPI project 'my-awesome-demo' from │
221
- │ 'fastapi-default' has been created and saved to │
222
- │ ~your-project-path~! │
223
- ╰───────────────────────────────────────────────────────╯
75
+ fastkit runserver [OPTIONS]
224
76
```
77
+ - What it does: Starts the uvicorn development server
78
+ - Key options:
79
+ - ` --host ` , ` --port ` , ` --reload/--no-reload ` , ` --workers `
225
80
226
- To view the list of available FastAPI demos, check with:
81
+ ### List templates
82
+ ``` console
83
+ fastkit list-templates
84
+ ```
227
85
86
+ ### Delete a project
228
87
``` console
229
- $ fastkit list-templates
230
- Available Templates
231
- ┌─────────────────────────┬───────────────────────────────────┐
232
- │ fastapi-custom-response │ Async Item Management API with │
233
- │ │ Custom Response System │
234
- │ fastapi-dockerized │ Dockerized FastAPI Item │
235
- │ │ Management API │
236
- │ fastapi-empty │ No description │
237
- │ fastapi-async-crud │ Async Item Management API Server │
238
- │ fastapi-psql-orm │ Dockerized FastAPI Item │
239
- │ │ Management API with PostgreSQL │
240
- │ fastapi-default │ Simple FastAPI Project │
241
- └─────────────────────────┴───────────────────────────────────┘
88
+ fastkit deleteproject <project_name>
242
89
```
243
90
244
91
## Documentation
@@ -254,6 +101,9 @@ For comprehensive guides and detailed usage instructions, visit our documentatio
254
101
255
102
We welcome contributions from the community! FastAPI-fastkit is designed to help newcomers to Python and FastAPI, and your contributions can make a significant impact.
256
103
104
+ <details >
105
+ <summary ><b >Contributing Guide</b ></summary >
106
+
257
107
### Quick Start for Contributors
258
108
259
109
1 . ** Fork and clone the repository:**
@@ -288,6 +138,8 @@ For detailed contribution guidelines, development setup, and project standards,
288
138
- ** [ CODE_OF_CONDUCT.md] ( CODE_OF_CONDUCT.md ) ** - Project principles and community standards
289
139
- ** [ SECURITY.md] ( SECURITY.md ) ** - Security guidelines and reporting
290
140
141
+ </details >
142
+
291
143
## Significance of FastAPI-fastkit
292
144
293
145
FastAPI-fastkit aims to provide a fast and easy-to-use starter kit for new users of Python and FastAPI.
0 commit comments