https://github.com/louisstefanuto/miam
A web app to organize cooking recipes and export them in printable formats to share with my family and friends.
https://github.com/louisstefanuto/miam
docker postgresql python recipes-website
Last synced: 3 months ago
JSON representation
A web app to organize cooking recipes and export them in printable formats to share with my family and friends.
- Host: GitHub
- URL: https://github.com/louisstefanuto/miam
- Owner: LouisStefanuto
- Created: 2026-01-23T21:32:49.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-04-11T16:10:24.000Z (3 months ago)
- Last Synced: 2026-04-11T17:25:56.275Z (3 months ago)
- Topics: docker, postgresql, python, recipes-website
- Language: TypeScript
- Homepage: https://louisstefanuto.github.io/miam/
- Size: 33 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# miam
**A web app to organize cooking recipes and export them in printable formats to share with my family and friends.**

[](https://louisstefanuto.github.io/miam/)
[](https://codecov.io/gh/LouisStefanuto/miam)
[**Install**](#install) • [**Run**](#run) • [**Docs**](https://louisstefanuto.github.io/miam/) • [**Dev**](#dev)
---
## Install
Install dependencies and setup virtual environment. Requires [`uv`](https://docs.astral.sh/uv/getting-started/installation/) installed.
```bash
make install
```
## Run
Launch project using `docker compose`.
```bash
make start
```
Stop project.
```bash
make stop
```
## Documentation
The project's documentation is available on [**GitHub Pages**](https://louisstefanuto.github.io/miam/).
To preview your documentation in real-time while editing, run:
```bash
make docs
```
## Google SSO Setup
Authentication uses Google Sign-In. To configure it:
1. Go to [Google Cloud Console](https://console.cloud.google.com) and create a project (or use an existing one)
2. Navigate to **Google Auth Platform > Clients**, click **Create Client**, select **Web application**
3. Under **Authorized JavaScript origins**, add your frontend URL (e.g. `http://localhost:3000`)
4. Copy the **Client ID** and set it in both env files:
```env
# backend/.env
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
# frontend/.env
VITE_GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
```
5. Go to **Google Auth Platform > Audience** and add your email under **Test users** (required while the app is in Testing mode)
6. Restart both frontend and backend
## Dev
Before pushing to this repo, please setup pre-commit.
```bash
uv tool install pre-commit
pre-commit install --hook-type commit-msg --hook-type pre-push
```
When running the project containers, monitor container resource usage with [Dozzle](https://dozzle.dev/guide/what-is-dozzle).
```bash
make dozzle
```
For performance results under load testing, see the [Locust section](./locust/README.md).
## Architecture
- Containerization: Docker Compose, Docker, Dozzle for container resource monitoring
- Backend: PostgreSQL, FastAPI, SqlAlchemy, Alembic, Python
- Frontend (vibe-coded): React, TypeScript, Vite, Tailwind CSS, shadcn/ui
- Load testing: Locust