Skip to content

Commit 1bf4daf

Browse files
Merge pull request #4 from fastapi/master
Updates from master
2 parents 996f221 + e4022a9 commit 1bf4daf

21 files changed

Lines changed: 306 additions & 2884 deletions

README.md

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
# Full Stack FastAPI Template
22

3-
<a href="https://github.com/fastapi/full-stack-fastapi-template/actions?query=workflow%3ATest" target="_blank"><img src="https://github.com/fastapi/full-stack-fastapi-template/workflows/Test/badge.svg" alt="Test"></a>
3+
<a href="https://github.com/fastapi/full-stack-fastapi-template/actions?query=workflow%3A%22Test+Docker+Compose%22" target="_blank"><img src="https://github.com/fastapi/full-stack-fastapi-template/workflows/Test%20Docker%20Compose/badge.svg" alt="Test Docker Compose"></a>
4+
<a href="https://github.com/fastapi/full-stack-fastapi-template/actions?query=workflow%3A%22Test+Backend%22" target="_blank"><img src="https://github.com/fastapi/full-stack-fastapi-template/workflows/Test%20Backend/badge.svg" alt="Test Backend"></a>
45
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/full-stack-fastapi-template" target="_blank"><img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/full-stack-fastapi-template.svg" alt="Coverage"></a>
56

67
## Technology Stack and Features
78

89
-[**FastAPI**](https://fastapi.tiangolo.com) for the Python backend API.
9-
- 🧰 [SQLModel](https://sqlmodel.tiangolo.com) for the Python SQL database interactions (ORM).
10-
- 🔍 [Pydantic](https://docs.pydantic.dev), used by FastAPI, for the data validation and settings management.
11-
- 💾 [PostgreSQL](https://www.postgresql.org) as the SQL database.
10+
- 🧰 [SQLModel](https://sqlmodel.tiangolo.com) for the Python SQL database interactions (ORM).
11+
- 🔍 [Pydantic](https://docs.pydantic.dev), used by FastAPI, for the data validation and settings management.
12+
- 💾 [PostgreSQL](https://www.postgresql.org) as the SQL database.
1213
- 🚀 [React](https://react.dev) for the frontend.
13-
- 💃 Using TypeScript, hooks, Vite, and other parts of a modern frontend stack.
14-
- 🎨 [Chakra UI](https://chakra-ui.com) for the frontend components.
15-
- 🤖 An automatically generated frontend client.
16-
- 🧪 [Playwright](https://playwright.dev) for End-to-End testing.
17-
- 🦇 Dark mode support.
14+
- 💃 Using TypeScript, hooks, [Vite](https://vitejs.dev), and other parts of a modern frontend stack.
15+
- 🎨 [Tailwind CSS](https://tailwindcss.com) and [shadcn/ui](https://ui.shadcn.com) for the frontend components.
16+
- 🤖 An automatically generated frontend client.
17+
- 🧪 [Playwright](https://playwright.dev) for End-to-End testing.
18+
- 🦇 Dark mode support.
1819
- 🐋 [Docker Compose](https://www.docker.com) for development and production.
1920
- 🔒 Secure password hashing by default.
2021
- 🔑 JWT (JSON Web Token) authentication.
2122
- 📫 Email based password recovery.
23+
- 📬 [Mailcatcher](https://mailcatcher.me) for local email testing during development.
2224
- ✅ Tests with [Pytest](https://pytest.org).
2325
- 📞 [Traefik](https://traefik.io) as a reverse proxy / load balancer.
2426
- 🚢 Deployment instructions using Docker Compose, including how to set up a frontend Traefik proxy to handle automatic HTTPS certificates.
@@ -32,18 +34,10 @@
3234

3335
[![API docs](img/dashboard.png)](https://github.com/fastapi/full-stack-fastapi-template)
3436

35-
### Dashboard - Create User
36-
37-
[![API docs](img/dashboard-create.png)](https://github.com/fastapi/full-stack-fastapi-template)
38-
3937
### Dashboard - Items
4038

4139
[![API docs](img/dashboard-items.png)](https://github.com/fastapi/full-stack-fastapi-template)
4240

43-
### Dashboard - User Settings
44-
45-
[![API docs](img/dashboard-user-settings.png)](https://github.com/fastapi/full-stack-fastapi-template)
46-
4741
### Dashboard - Dark Mode
4842

4943
[![API docs](img/dashboard-dark.png)](https://github.com/fastapi/full-stack-fastapi-template)

development.md

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ docker compose watch
1010

1111
* Now you can open your browser and interact with these URLs:
1212

13-
Frontend, built with Docker, with routes handled based on the path: http://localhost:5173
13+
Frontend, built with Docker, with routes handled based on the path: <http://localhost:5173>
1414

15-
Backend, JSON based web API based on OpenAPI: http://localhost:8000
15+
Backend, JSON based web API based on OpenAPI: <http://localhost:8000>
1616

17-
Automatic interactive documentation with Swagger UI (from the OpenAPI backend): http://localhost:8000/docs
17+
Automatic interactive documentation with Swagger UI (from the OpenAPI backend): <http://localhost:8000/docs>
1818

19-
Adminer, database web administration: http://localhost:8080
19+
Adminer, database web administration: <http://localhost:8080>
2020

21-
Traefik UI, to see how the routes are being handled by the proxy: http://localhost:8090
21+
Traefik UI, to see how the routes are being handled by the proxy: <http://localhost:8090>
2222

2323
**Note**: The first time you start your stack, it might take a minute for it to be ready. While the backend waits for the database to be ready and configures everything. You can check the logs to monitor it.
2424

@@ -34,6 +34,18 @@ To check the logs of a specific service, add the name of the service, e.g.:
3434
docker compose logs backend
3535
```
3636

37+
## Mailcatcher
38+
39+
Mailcatcher is a simple SMTP server that catches all emails sent by the backend during local development. Instead of sending real emails, they are captured and displayed in a web interface.
40+
41+
This is useful for:
42+
43+
* Testing email functionality during development
44+
* Verifying email content and formatting
45+
* Debugging email-related functionality without sending real emails
46+
47+
The backend is automatically configured to use Mailcatcher when running with Docker Compose locally (SMTP on port 1025). All captured emails can be viewed at <http://localhost:1080>.
48+
3749
## Local Development
3850

3951
The Docker Compose files are configured so that each of the services is available in a different port in `localhost`.
@@ -174,34 +186,34 @@ The production or staging URLs would use these same paths, but with your own dom
174186

175187
Development URLs, for local development.
176188

177-
Frontend: http://localhost:5173
189+
Frontend: <http://localhost:5173>
178190

179-
Backend: http://localhost:8000
191+
Backend: <http://localhost:8000>
180192

181-
Automatic Interactive Docs (Swagger UI): http://localhost:8000/docs
193+
Automatic Interactive Docs (Swagger UI): <http://localhost:8000/docs>
182194

183-
Automatic Alternative Docs (ReDoc): http://localhost:8000/redoc
195+
Automatic Alternative Docs (ReDoc): <http://localhost:8000/redoc>
184196

185-
Adminer: http://localhost:8080
197+
Adminer: <http://localhost:8080>
186198

187-
Traefik UI: http://localhost:8090
199+
Traefik UI: <http://localhost:8090>
188200

189-
MailCatcher: http://localhost:1080
201+
MailCatcher: <http://localhost:1080>
190202

191203
### Development URLs with `localhost.tiangolo.com` Configured
192204

193205
Development URLs, for local development.
194206

195-
Frontend: http://dashboard.localhost.tiangolo.com
207+
Frontend: <http://dashboard.localhost.tiangolo.com>
196208

197-
Backend: http://api.localhost.tiangolo.com
209+
Backend: <http://api.localhost.tiangolo.com>
198210

199-
Automatic Interactive Docs (Swagger UI): http://api.localhost.tiangolo.com/docs
211+
Automatic Interactive Docs (Swagger UI): <http://api.localhost.tiangolo.com/docs>
200212

201-
Automatic Alternative Docs (ReDoc): http://api.localhost.tiangolo.com/redoc
213+
Automatic Alternative Docs (ReDoc): <http://api.localhost.tiangolo.com/redoc>
202214

203-
Adminer: http://localhost.tiangolo.com:8080
215+
Adminer: <http://localhost.tiangolo.com:8080>
204216

205-
Traefik UI: http://localhost.tiangolo.com:8090
217+
Traefik UI: <http://localhost.tiangolo.com:8090>
206218

207-
MailCatcher: http://localhost.tiangolo.com:1080
219+
MailCatcher: <http://localhost.tiangolo.com:1080>

frontend/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# FastAPI Project - Frontend
22

3-
The frontend is built with [Vite](https://vitejs.dev/), [React](https://reactjs.org/), [TypeScript](https://www.typescriptlang.org/), [TanStack Query](https://tanstack.com/query), [TanStack Router](https://tanstack.com/router) and [Chakra UI](https://chakra-ui.com/).
3+
The frontend is built with [Vite](https://vitejs.dev/), [React](https://reactjs.org/), [TypeScript](https://www.typescriptlang.org/), [TanStack Query](https://tanstack.com/query), [TanStack Router](https://tanstack.com/router) and [Tailwind CSS](https://tailwindcss.com/).
44

55
## Frontend development
66

@@ -121,7 +121,6 @@ The frontend code is structured as follows:
121121
* `frontend/src/components` - The different components of the frontend.
122122
* `frontend/src/hooks` - Custom hooks.
123123
* `frontend/src/routes` - The different routes of the frontend which include the pages.
124-
* `theme.tsx` - The Chakra UI custom theme.
125124

126125
## End-to-End Testing with Playwright
127126

0 commit comments

Comments
 (0)