Skip to content

Commit 406a3c8

Browse files
authored
update: README (#31)
1 parent a94f5d2 commit 406a3c8

1 file changed

Lines changed: 56 additions & 12 deletions

File tree

README.md

Lines changed: 56 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,72 @@
1-
# FastAPI-Forge
2-
🚀 Build FastAPI Projects — Fast, Scalable, and Hassle-Free!
1+
# 🚀 FastAPI-Forge
2+
⚡ UI Based FastAPI Project Generator
3+
4+
*Define your database models through a UI, select services, and get a complete production-ready containerized project with tests and endpoints!*
5+
6+
## 🔥 Features
7+
8+
9+
### 🖌️ UI Power
10+
- 🖥️ [NiceGUI](https://github.com/zauberzeug/nicegui)-based interface for project design
11+
- 📊 Visual model creation and configuration
12+
- ⚙️ One-click project generation
13+
14+
### ⚡ Auto-Generated Components
15+
- 🗄️ [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) Models
16+
- 📦 [Pydantic](https://github.com/pydantic/pydantic) Schemas
17+
- 🌐 RESTful Endpoints (CRUD + more)
18+
- � Comprehensive Test Suite (pytest)
19+
- 🏗️ DAOs (Database Access Objects)
20+
- 🏭 [Factory Boy](https://github.com/FactoryBoy/factory_boy) Test Factories
21+
- 🐳 [Docker Compose](https://github.com/docker/compose) Setup
22+
23+
### 🎛️ Advanced Features
24+
- 🎚️ Custom Enum support as data types
25+
- 📥 YAML project import/export
26+
- 🐘 Convert existing databases into FastAPI projects via connection string!
27+
- Basically lets you quickly create an API for any database.
28+
29+
### 🔄 CI/CD Automation
30+
- ⚙️ GitHub Workflows for automated testing and linting
31+
- 🧪 Runs pytest suite
32+
- ✨ Executes code formatting checks
33+
- ✅ Ensures code quality before merging
34+
35+
## 🧩 Optional Integrations
36+
37+
| Category | Technologies |
38+
|----------------|---------------------------------------|
39+
| Messaging | RabbitMQ |
40+
| Caching | Redis |
41+
| Task Queues | Celery, [TaskIQ](https://github.com/taskiq-python/taskiq) |
42+
| Auth | JWT Authentication |
43+
| Monitoring | Prometheus |
44+
| Storage | S3 |
45+
| Migrations | Alembic |
46+
47+
*More to come!*
48+
49+
## UI for designing your API projects
50+
![UI Interface](https://github.com/user-attachments/assets/4037f7c5-68ac-48e5-8a4e-1a6a6f1f4072)
51+
52+
## Generated project example
53+
![Generated Project Structure](https://github.com/user-attachments/assets/cc546f56-abd5-4eb1-b469-5940f0558255)
354

4-
FastAPI-Forge lets you define your database models through a UI, letting you select additional optional services, and then generates a full working project for you, with tests and endpoints.
5-
The generated project follows best practices, in an easy-to-work with and scalable architecture. It will contain SQLAlchemy models of the database models you've defined in the UI, along with implementations of your selected services.
655

7-
---
856

957
## ✅ Requirements
1058
- Python 3.12+
1159
- UV
1260
- Docker and Docker Compose (for running the generated project)
13-
---
1461

15-
## 🚀 Installation
62+
63+
## 🚀 Quick Start
1664
Install FastAPI-Forge:
1765

1866
```bash
1967
pip install fastapi-forge
2068
```
2169

22-
---
23-
2470
## 🛠 Usage
2571
Start the project generation process:
2672

@@ -35,13 +81,12 @@ fastapi-forge start
3581
To start the generated project and its dependencies in Docker:
3682

3783
```bash
38-
make up
84+
make up # Builds your project, and runs additional services
3985
```
4086

4187
- The project will run using Docker Compose, simplifying your development environment.
4288
- Access the SwaggerUI/OpenAPI docs at: `http://localhost:8000/docs`.
4389

44-
---
4590

4691
## ⚙️ Command Options
4792
Customize your project generation with these options:
@@ -73,7 +118,6 @@ Load a YAML config and skip the UI:
73118
fastapi-forge start --from-yaml=~/Documents/project-config.yaml --no-ui
74119
```
75120

76-
---
77121

78122
## 🧰 Using the Makefile
79123
The generated project includes a `Makefile` to simplify common dev tasks:

0 commit comments

Comments
 (0)