fastapi-assist 0.1.0__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_assist-0.1.0/LICENSE +21 -0
- fastapi_assist-0.1.0/PKG-INFO +661 -0
- fastapi_assist-0.1.0/README.md +606 -0
- fastapi_assist-0.1.0/pyproject.toml +93 -0
- fastapi_assist-0.1.0/setup.cfg +4 -0
- fastapi_assist-0.1.0/src/fa_assist/__init__.py +0 -0
- fastapi_assist-0.1.0/src/fa_assist/cli.py +44 -0
- fastapi_assist-0.1.0/src/fa_assist/commands/__init__.py +0 -0
- fastapi_assist-0.1.0/src/fa_assist/commands/create.py +78 -0
- fastapi_assist-0.1.0/src/fa_assist/commands/init.py +78 -0
- fastapi_assist-0.1.0/src/fa_assist/files_code/app_structure.py +80 -0
- fastapi_assist-0.1.0/src/fa_assist/files_code/project_structure.py +839 -0
- fastapi_assist-0.1.0/src/fa_assist/util.py +75 -0
- fastapi_assist-0.1.0/src/fastapi_assist.egg-info/PKG-INFO +661 -0
- fastapi_assist-0.1.0/src/fastapi_assist.egg-info/SOURCES.txt +20 -0
- fastapi_assist-0.1.0/src/fastapi_assist.egg-info/dependency_links.txt +1 -0
- fastapi_assist-0.1.0/src/fastapi_assist.egg-info/entry_points.txt +2 -0
- fastapi_assist-0.1.0/src/fastapi_assist.egg-info/requires.txt +28 -0
- fastapi_assist-0.1.0/src/fastapi_assist.egg-info/top_level.txt +1 -0
- fastapi_assist-0.1.0/tests/test_01_project_init.py +43 -0
- fastapi_assist-0.1.0/tests/test_02_config.py +25 -0
- fastapi_assist-0.1.0/tests/test_03_add_app.py +36 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ankit Prajapati
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,661 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fastapi_assist
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Production-ready FastAPI project scaffolding with async ORM, migrations, Docker, logging, and modular app architecture.
|
|
5
|
+
Author: Ankit Prajapati
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Ankitp2002/fastapi_assist
|
|
8
|
+
Project-URL: Repository, https://github.com/Ankitp2002/fastapi_assist
|
|
9
|
+
Project-URL: Issues, https://github.com/Ankitp2002/fastapi_assist/issues
|
|
10
|
+
Keywords: fastapi,python,cli,scaffolding,fastapi-cli,tortoise-orm,aerich,docker,backend,api
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Framework :: FastAPI
|
|
21
|
+
Classifier: Operating System :: OS Independent
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: typer
|
|
28
|
+
Requires-Dist: aiofiles
|
|
29
|
+
Requires-Dist: aiomysql
|
|
30
|
+
Requires-Dist: click
|
|
31
|
+
Requires-Dist: cython
|
|
32
|
+
Requires-Dist: dotenv
|
|
33
|
+
Requires-Dist: fastapi
|
|
34
|
+
Requires-Dist: jinja2
|
|
35
|
+
Requires-Dist: openpyxl
|
|
36
|
+
Requires-Dist: orjson
|
|
37
|
+
Requires-Dist: pandas
|
|
38
|
+
Requires-Dist: numpy
|
|
39
|
+
Requires-Dist: pydantic[email]
|
|
40
|
+
Requires-Dist: pydantic-settings
|
|
41
|
+
Requires-Dist: python-multipart
|
|
42
|
+
Requires-Dist: setuptools
|
|
43
|
+
Requires-Dist: tortoise-orm[aiomysql]<2,>=1.1
|
|
44
|
+
Requires-Dist: uvicorn
|
|
45
|
+
Requires-Dist: uvicorn-worker
|
|
46
|
+
Requires-Dist: xlsxwriter
|
|
47
|
+
Requires-Dist: aerich[toml]<1,>=0.10
|
|
48
|
+
Provides-Extra: dev
|
|
49
|
+
Requires-Dist: pytest; extra == "dev"
|
|
50
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
51
|
+
Requires-Dist: httpx; extra == "dev"
|
|
52
|
+
Requires-Dist: ruff; extra == "dev"
|
|
53
|
+
Requires-Dist: typer; extra == "dev"
|
|
54
|
+
Dynamic: license-file
|
|
55
|
+
|
|
56
|
+
# FastAssist
|
|
57
|
+
|
|
58
|
+
**A production-ready FastAPI project foundation — scaffold, configure, and start building.**
|
|
59
|
+
|
|
60
|
+
FastAssist is a developer-focused CLI toolkit that generates a **complete, well-structured FastAPI project** with modular applications, async database integration, migrations, logging, Docker support, and reusable application components.
|
|
61
|
+
|
|
62
|
+
Instead of spending hours creating the same project structure, configuring databases, setting up migrations, writing boilerplate, and preparing Docker files, FastAssist gives you a **ready-to-serve project foundation**.
|
|
63
|
+
|
|
64
|
+
> **You create the project. FastAssist creates the foundation. You build the business logic.**
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## ✨ Why FastAssist?
|
|
69
|
+
|
|
70
|
+
Starting a FastAPI application from scratch often requires setting up:
|
|
71
|
+
|
|
72
|
+
- Project architecture
|
|
73
|
+
- Application modules
|
|
74
|
+
- Configuration management
|
|
75
|
+
- Environment variables
|
|
76
|
+
- Database connection
|
|
77
|
+
- Async ORM
|
|
78
|
+
- Database migrations
|
|
79
|
+
- Logging
|
|
80
|
+
- Error handling
|
|
81
|
+
- Rate limiting
|
|
82
|
+
- Models
|
|
83
|
+
- Schemas
|
|
84
|
+
- Views
|
|
85
|
+
- Routers
|
|
86
|
+
- Docker
|
|
87
|
+
- Docker Compose
|
|
88
|
+
- Deployment scripts
|
|
89
|
+
|
|
90
|
+
FastAssist automates this repetitive setup.
|
|
91
|
+
|
|
92
|
+
With a few CLI commands, you get a complete project structure that is ready for development and can be run using Docker without manually configuring the container environment.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
# 🚀 Quick Start
|
|
97
|
+
|
|
98
|
+
## 1. Install FastAssist
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pip install fa-assist
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 2. Initialize your project
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
fa_assist init project my_project
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
FastAssist creates the complete project architecture, configuration, database setup, logging, Docker setup, and supporting utilities.
|
|
111
|
+
|
|
112
|
+
## 3. Add an application
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
fa_assist add app users
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
That's it.
|
|
119
|
+
|
|
120
|
+
Your project is ready for you to start adding your business logic.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
# 🏗️ Generated Project Architecture
|
|
125
|
+
|
|
126
|
+
A project generated by FastAssist follows a modular structure designed for scalable FastAPI applications.
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
my_project/
|
|
130
|
+
│
|
|
131
|
+
├── configuration/
|
|
132
|
+
│ ├── config.py
|
|
133
|
+
│ ├── custom_error.py
|
|
134
|
+
│ ├── db.py
|
|
135
|
+
│ ├── logger.py
|
|
136
|
+
│ ├── rate_limit.py
|
|
137
|
+
│ └── server.py
|
|
138
|
+
│
|
|
139
|
+
├── apps/
|
|
140
|
+
│ ├── __init__.py
|
|
141
|
+
│ ├── constants.py
|
|
142
|
+
│ ├── db_operations.py
|
|
143
|
+
│ ├── https_response.py
|
|
144
|
+
│ ├── models.py
|
|
145
|
+
│ ├── reg_models.py
|
|
146
|
+
│ ├── reg_routers.py
|
|
147
|
+
│ ├── schemas.py
|
|
148
|
+
│ ├── utils.py
|
|
149
|
+
│ │
|
|
150
|
+
│ └── users/
|
|
151
|
+
│ ├── __init__.py
|
|
152
|
+
│ ├── models.py
|
|
153
|
+
│ ├── schemas/
|
|
154
|
+
│ │ └── __init__.py
|
|
155
|
+
│ ├── views/
|
|
156
|
+
│ │ ├── __init__.py
|
|
157
|
+
│ │ └── api_users_view.py
|
|
158
|
+
│ ├── constants.py
|
|
159
|
+
│ ├── dependencies.py
|
|
160
|
+
│ ├── enums.py
|
|
161
|
+
│ ├── internal_api_calls.py
|
|
162
|
+
│ └── utils.py
|
|
163
|
+
│
|
|
164
|
+
├── credential/
|
|
165
|
+
├── independent_scripts/
|
|
166
|
+
├── logs/
|
|
167
|
+
│
|
|
168
|
+
├── main.py
|
|
169
|
+
├── .env
|
|
170
|
+
│
|
|
171
|
+
├── Dockerfile
|
|
172
|
+
├── .docker-compose.yaml
|
|
173
|
+
├── docker_setup.sh
|
|
174
|
+
├── deployment.sh
|
|
175
|
+
│
|
|
176
|
+
└── ...
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
The generated architecture can be extended as your application grows.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
# 🧩 Multi-App Architecture
|
|
184
|
+
|
|
185
|
+
FastAssist is designed for applications that contain multiple business domains.
|
|
186
|
+
|
|
187
|
+
For example:
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
apps/
|
|
191
|
+
├── users/
|
|
192
|
+
├── authentication/
|
|
193
|
+
├── products/
|
|
194
|
+
├── orders/
|
|
195
|
+
├── payments/
|
|
196
|
+
└── notifications/
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Each application gets its own isolated structure for:
|
|
200
|
+
|
|
201
|
+
- Models
|
|
202
|
+
- Schemas
|
|
203
|
+
- Views
|
|
204
|
+
- Constants
|
|
205
|
+
- Enums
|
|
206
|
+
- Dependencies
|
|
207
|
+
- Utilities
|
|
208
|
+
- Internal API operations
|
|
209
|
+
|
|
210
|
+
This keeps large FastAPI projects modular and maintainable.
|
|
211
|
+
|
|
212
|
+
Create an application with:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
fa_assist add app products
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
No need to manually create the directories and boilerplate files.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
# 🗄️ Async Database with Tortoise ORM
|
|
223
|
+
|
|
224
|
+
FastAssist comes with an async database foundation using **Tortoise ORM**.
|
|
225
|
+
|
|
226
|
+
The generated project includes database configuration and integration so you can define your models without manually building the entire database layer.
|
|
227
|
+
|
|
228
|
+
Example:
|
|
229
|
+
|
|
230
|
+
```python
|
|
231
|
+
from tortoise import fields
|
|
232
|
+
from tortoise.models import Model
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
class User(Model):
|
|
236
|
+
id = fields.IntField(pk=True)
|
|
237
|
+
name = fields.CharField(max_length=100)
|
|
238
|
+
email = fields.CharField(
|
|
239
|
+
max_length=255,
|
|
240
|
+
unique=True,
|
|
241
|
+
)
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The architecture is designed around asynchronous FastAPI applications and async database operations.
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
# 🔄 Database Migrations with Aerich
|
|
249
|
+
|
|
250
|
+
FastAssist integrates **Aerich** for managing Tortoise ORM migrations.
|
|
251
|
+
|
|
252
|
+
Your workflow becomes:
|
|
253
|
+
|
|
254
|
+
```text
|
|
255
|
+
Create / Update Model
|
|
256
|
+
↓
|
|
257
|
+
Create Migration
|
|
258
|
+
↓
|
|
259
|
+
Apply Migration
|
|
260
|
+
↓
|
|
261
|
+
Continue Development
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Typical Aerich commands:
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
aerich migrate
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
aerich upgrade
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
This provides a clean way to version and apply database schema changes as your project evolves.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
# 🐳 Docker Ready
|
|
279
|
+
|
|
280
|
+
**Don't worry about Docker setup. FastAssist handles the foundation for you.**
|
|
281
|
+
|
|
282
|
+
Every generated project includes Docker-related files such as:
|
|
283
|
+
|
|
284
|
+
```text
|
|
285
|
+
Dockerfile
|
|
286
|
+
.docker-compose.yaml
|
|
287
|
+
docker_setup.sh
|
|
288
|
+
deployment.sh
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
This allows your FastAPI application to be containerized without manually creating the initial Docker configuration.
|
|
292
|
+
|
|
293
|
+
The goal is simple:
|
|
294
|
+
|
|
295
|
+
```text
|
|
296
|
+
Generate Project
|
|
297
|
+
↓
|
|
298
|
+
Configure Environment
|
|
299
|
+
↓
|
|
300
|
+
Start Docker
|
|
301
|
+
↓
|
|
302
|
+
Run FastAPI
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
You can use Docker for consistent development, testing, and deployment environments.
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
# 📝 Automatic Logging
|
|
310
|
+
|
|
311
|
+
FastAssist provides centralized logging configuration as part of the generated project.
|
|
312
|
+
|
|
313
|
+
Instead of configuring logging separately for every project, the generated architecture provides a common logging foundation.
|
|
314
|
+
|
|
315
|
+
This can be used for:
|
|
316
|
+
|
|
317
|
+
- Application logs
|
|
318
|
+
- API activity
|
|
319
|
+
- Errors
|
|
320
|
+
- Debugging
|
|
321
|
+
- Database-related events
|
|
322
|
+
- Production diagnostics
|
|
323
|
+
|
|
324
|
+
Logs can be organized through the generated `logs/` directory.
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
# ⚙️ Configuration Management
|
|
329
|
+
|
|
330
|
+
The generated project includes a dedicated configuration layer.
|
|
331
|
+
|
|
332
|
+
```text
|
|
333
|
+
configuration/
|
|
334
|
+
├── config.py
|
|
335
|
+
├── db.py
|
|
336
|
+
├── logger.py
|
|
337
|
+
├── rate_limit.py
|
|
338
|
+
├── server.py
|
|
339
|
+
└── custom_error.py
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
This keeps infrastructure-related configuration separate from application business logic.
|
|
343
|
+
|
|
344
|
+
Environment-specific values can be managed through `.env`.
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
# 🧱 Built-in Application Foundation
|
|
349
|
+
|
|
350
|
+
When you create an application:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
fa_assist add app users
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
FastAssist generates the common building blocks automatically.
|
|
357
|
+
|
|
358
|
+
```text
|
|
359
|
+
users/
|
|
360
|
+
├── models.py
|
|
361
|
+
├── constants.py
|
|
362
|
+
├── enums.py
|
|
363
|
+
├── dependencies.py
|
|
364
|
+
├── internal_api_calls.py
|
|
365
|
+
├── utils.py
|
|
366
|
+
│
|
|
367
|
+
├── schemas/
|
|
368
|
+
│ └── __init__.py
|
|
369
|
+
│
|
|
370
|
+
└── views/
|
|
371
|
+
├── __init__.py
|
|
372
|
+
└── api_users_view.py
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
You don't need to repeatedly create these files for every application.
|
|
376
|
+
|
|
377
|
+
Simply add your own business logic.
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
# 🎯 Developer Experience
|
|
382
|
+
|
|
383
|
+
FastAssist is built around one simple idea:
|
|
384
|
+
|
|
385
|
+
> **Remove repetitive setup, not engineering decisions.**
|
|
386
|
+
|
|
387
|
+
You still control your:
|
|
388
|
+
|
|
389
|
+
- Database models
|
|
390
|
+
- Business rules
|
|
391
|
+
- API design
|
|
392
|
+
- Validation
|
|
393
|
+
- Authentication
|
|
394
|
+
- Application logic
|
|
395
|
+
- Database queries
|
|
396
|
+
- Infrastructure decisions
|
|
397
|
+
|
|
398
|
+
FastAssist simply gives you the foundation.
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
# 🔥 Before FastAssist
|
|
403
|
+
|
|
404
|
+
A typical new FastAPI project may require:
|
|
405
|
+
|
|
406
|
+
```text
|
|
407
|
+
Create directories
|
|
408
|
+
↓
|
|
409
|
+
Create configuration
|
|
410
|
+
↓
|
|
411
|
+
Configure environment
|
|
412
|
+
↓
|
|
413
|
+
Configure database
|
|
414
|
+
↓
|
|
415
|
+
Install/configure ORM
|
|
416
|
+
↓
|
|
417
|
+
Configure migrations
|
|
418
|
+
↓
|
|
419
|
+
Configure logging
|
|
420
|
+
↓
|
|
421
|
+
Create application modules
|
|
422
|
+
↓
|
|
423
|
+
Create models
|
|
424
|
+
↓
|
|
425
|
+
Create schemas
|
|
426
|
+
↓
|
|
427
|
+
Create views
|
|
428
|
+
↓
|
|
429
|
+
Create routers
|
|
430
|
+
↓
|
|
431
|
+
Configure Docker
|
|
432
|
+
↓
|
|
433
|
+
Configure Docker Compose
|
|
434
|
+
↓
|
|
435
|
+
Write startup scripts
|
|
436
|
+
↓
|
|
437
|
+
Finally start development
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
A lot of this work is repetitive.
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
# ⚡ With FastAssist
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
pip install fa-assist
|
|
448
|
+
|
|
449
|
+
fa_assist init project my_project
|
|
450
|
+
|
|
451
|
+
fa_assist add app users
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Then:
|
|
455
|
+
|
|
456
|
+
```text
|
|
457
|
+
FastAssist
|
|
458
|
+
│
|
|
459
|
+
▼
|
|
460
|
+
┌─────────────────────────┐
|
|
461
|
+
│ Complete Project Setup │
|
|
462
|
+
├─────────────────────────┤
|
|
463
|
+
│ FastAPI │
|
|
464
|
+
│ Async ORM │
|
|
465
|
+
│ Migrations │
|
|
466
|
+
│ Logging │
|
|
467
|
+
│ Configuration │
|
|
468
|
+
│ Models │
|
|
469
|
+
│ Schemas │
|
|
470
|
+
│ Views │
|
|
471
|
+
│ Routers │
|
|
472
|
+
│ Docker │
|
|
473
|
+
│ Deployment Foundation │
|
|
474
|
+
└─────────────────────────┘
|
|
475
|
+
│
|
|
476
|
+
▼
|
|
477
|
+
Your Business Logic
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
# 🛠️ Example Workflow
|
|
483
|
+
|
|
484
|
+
Create a project:
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
fa_assist init project ecommerce
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
Create applications:
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
fa_assist add app users
|
|
494
|
+
fa_assist add app products
|
|
495
|
+
fa_assist add app orders
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
Your project can then evolve into:
|
|
499
|
+
|
|
500
|
+
```text
|
|
501
|
+
ecommerce/
|
|
502
|
+
│
|
|
503
|
+
├── configuration/
|
|
504
|
+
│
|
|
505
|
+
├── apps/
|
|
506
|
+
│ ├── users/
|
|
507
|
+
│ ├── products/
|
|
508
|
+
│ └── orders/
|
|
509
|
+
│
|
|
510
|
+
├── logs/
|
|
511
|
+
├── credential/
|
|
512
|
+
├── independent_scripts/
|
|
513
|
+
│
|
|
514
|
+
├── Dockerfile
|
|
515
|
+
├── .docker-compose.yaml
|
|
516
|
+
├── deployment.sh
|
|
517
|
+
└── main.py
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
From this point, your primary job is to implement the actual product requirements.
|
|
521
|
+
|
|
522
|
+
---
|
|
523
|
+
|
|
524
|
+
# 📦 Installation
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
pip install fa-assist
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### Development installation
|
|
531
|
+
|
|
532
|
+
Clone the repository and install development dependencies:
|
|
533
|
+
|
|
534
|
+
```bash
|
|
535
|
+
pip install -e ".[dev]"
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
# 💻 Requirements
|
|
541
|
+
|
|
542
|
+
- Python **3.10+**
|
|
543
|
+
- FastAPI
|
|
544
|
+
- Tortoise ORM
|
|
545
|
+
- Aerich
|
|
546
|
+
- Uvicorn
|
|
547
|
+
- Docker _(for containerized execution)_
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
551
|
+
# 🧪 Development
|
|
552
|
+
|
|
553
|
+
Install the development dependencies:
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
pip install -e ".[dev]"
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
Run tests:
|
|
560
|
+
|
|
561
|
+
```bash
|
|
562
|
+
pytest
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
Development tooling includes:
|
|
566
|
+
|
|
567
|
+
- `pytest`
|
|
568
|
+
- `pytest-asyncio`
|
|
569
|
+
- `httpx`
|
|
570
|
+
- `ruff`
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
574
|
+
# 🖥️ CLI
|
|
575
|
+
|
|
576
|
+
## Initialize a project
|
|
577
|
+
|
|
578
|
+
```bash
|
|
579
|
+
fa_assist init project <project_name>
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
Example:
|
|
583
|
+
|
|
584
|
+
```bash
|
|
585
|
+
fa_assist init project my_project
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
## Add an application
|
|
589
|
+
|
|
590
|
+
```bash
|
|
591
|
+
fa_assist add app <app_name>
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
Example:
|
|
595
|
+
|
|
596
|
+
```bash
|
|
597
|
+
fa_assist add app users
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
---
|
|
601
|
+
|
|
602
|
+
# 🗺️ Roadmap
|
|
603
|
+
|
|
604
|
+
FastAssist is actively designed to evolve into a broader FastAPI development toolkit.
|
|
605
|
+
|
|
606
|
+
Potential future features include:
|
|
607
|
+
|
|
608
|
+
- [ ] CRUD generators
|
|
609
|
+
- [ ] Authentication scaffolding
|
|
610
|
+
- [ ] JWT authentication
|
|
611
|
+
- [ ] Automatic API generation
|
|
612
|
+
- [ ] Schema generators
|
|
613
|
+
- [ ] Celery integration
|
|
614
|
+
- [ ] Redis integration
|
|
615
|
+
- [ ] Background task scaffolding
|
|
616
|
+
- [ ] Docker environment customization
|
|
617
|
+
- [ ] Production deployment templates
|
|
618
|
+
- [ ] Testing scaffolding
|
|
619
|
+
- [ ] API documentation customization
|
|
620
|
+
- [ ] Additional project templates
|
|
621
|
+
- [ ] More CLI development utilities
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
# 🤝 Contributing
|
|
626
|
+
|
|
627
|
+
Contributions, ideas, and improvements are welcome.
|
|
628
|
+
|
|
629
|
+
If you find a bug or have an idea for improving FastAssist, feel free to open an issue or submit a pull request.
|
|
630
|
+
|
|
631
|
+
Before submitting changes, run:
|
|
632
|
+
|
|
633
|
+
```bash
|
|
634
|
+
pytest
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
---
|
|
638
|
+
|
|
639
|
+
# 📄 License
|
|
640
|
+
|
|
641
|
+
FastAssist is released under the **MIT License**.
|
|
642
|
+
|
|
643
|
+
---
|
|
644
|
+
|
|
645
|
+
# FastAssist
|
|
646
|
+
|
|
647
|
+
### Build FastAPI applications, not boilerplate.
|
|
648
|
+
|
|
649
|
+
```bash
|
|
650
|
+
pip install fa-assist
|
|
651
|
+
|
|
652
|
+
fa_assist init project my_project
|
|
653
|
+
|
|
654
|
+
fa_assist add app users
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
**Scaffold → Configure → Build.**
|
|
658
|
+
|
|
659
|
+
Your project foundation is ready.
|
|
660
|
+
|
|
661
|
+
**Now build your business logic.**
|