@@ -26,219 +26,66 @@ This project was inspired by the `SpringBoot initializer` & Python Django's `dja
2626- ** 📋 Standards-based FastAPI project templates** : All FastAPI-fastkit templates are based on Python standards and FastAPI's common use patterns
2727- ** 🔍 Automated template quality assurance** : Weekly automated testing ensures all templates remain functional and up-to-date
2828- ** 🚀 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
2930
3031## Installation
3132
3233Install ` FastAPI-fastkit ` at your Python environment.
3334
3435``` console
3536$ pip install FastAPI-fastkit
36- ---> 100%
3737```
3838
3939
4040## Usage
4141
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
4746
47+ ### Create a new FastAPI project
4848``` console
49- $ fastkit init
50- Enter the project name: my-awesome-project
51- Enter the author name: John Doe
52- Enter the author email: [email protected] 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 │ [email protected] │ 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]
14650```
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)
14756
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
15658``` 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]
17460```
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 `
17566
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
18372
73+ ### Run the development server
18474``` console
185- $ fastkit startdemo
186- Enter the project name: my-awesome-demo
187- Enter the author name: John Doe
188- Enter the author email: [email protected] 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 │ [email protected] │ 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]
22476```
77+ - What it does: Starts the uvicorn development server
78+ - Key options:
79+ - ` --host ` , ` --port ` , ` --reload/--no-reload ` , ` --workers `
22580
226- To view the list of available FastAPI demos, check with:
81+ ### List templates
82+ ``` console
83+ fastkit list-templates
84+ ```
22785
86+ ### Delete a project
22887``` 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>
24289```
24390
24491## Documentation
@@ -254,6 +101,9 @@ For comprehensive guides and detailed usage instructions, visit our documentatio
254101
255102We welcome contributions from the community! FastAPI-fastkit is designed to help newcomers to Python and FastAPI, and your contributions can make a significant impact.
256103
104+ <details >
105+ <summary ><b >Contributing Guide</b ></summary >
106+
257107### Quick Start for Contributors
258108
2591091 . ** Fork and clone the repository:**
@@ -288,6 +138,8 @@ For detailed contribution guidelines, development setup, and project standards,
288138- ** [ CODE_OF_CONDUCT.md] ( CODE_OF_CONDUCT.md ) ** - Project principles and community standards
289139- ** [ SECURITY.md] ( SECURITY.md ) ** - Security guidelines and reporting
290140
141+ </details >
142+
291143## Significance of FastAPI-fastkit
292144
293145FastAPI-fastkit aims to provide a fast and easy-to-use starter kit for new users of Python and FastAPI.
0 commit comments