ai slop ah

This commit is contained in:
2026-08-22 17:27:55 +02:00
parent 6a5bb1d699
commit dc124d0d77
64 changed files with 7308 additions and 2448 deletions
+16 -5
View File
@@ -1,6 +1,6 @@
# Northline Delivery Studio
# Noah Bianchi Studio
Northline is an original photographer client-delivery platform inspired by the category of premium gallery products such as DLVRD. It is built around one loop:
Noah Bianchi is an original photographer client-delivery platform inspired by the category of premium gallery products such as DLVRD. It is built around one loop:
```text
Upload -> Curate -> Customize -> Publish -> Send a private link
@@ -11,7 +11,7 @@ Photographers get a focused studio dashboard. Clients get a private editorial ga
## Stack
- Frontend: React, TypeScript, Vite, React Router, Tailwind CSS, Framer Motion
- Backend: Go 1.24+, `net/http`, REST/JSON, `database/sql`
- Backend: Go 1.24+, Gin, REST/JSON, `database/sql`
- Database: PostgreSQL by default; SQLite remains available for lightweight local testing
- Storage: MinIO locally through an S3-compatible storage interface
- Media: direct browser uploads with presigned URLs, asynchronous preview processing, signed download URLs
@@ -52,6 +52,7 @@ Open:
- Dashboard: [http://localhost:5173/login](http://localhost:5173/login)
- Dev diagnostics: [http://localhost:5173/dashboard/dev](http://localhost:5173/dashboard/dev)
- Demo client gallery: [http://localhost:5173/g/emma-james-wedding](http://localhost:5173/g/emma-james-wedding)
- API documentation: [http://localhost:8080/swagger/index.html](http://localhost:8080/swagger/index.html)
- MinIO console: [http://localhost:9001](http://localhost:9001)
### PowerShell
@@ -78,7 +79,7 @@ The seed command creates:
```text
Email: demo@example.com
Password: DemoPassword123!
Studio: Northline Studio
Studio: Noah Bianchi
```
It also creates the published demo gallery:
@@ -187,6 +188,8 @@ POST /api/auth/register
POST /api/auth/login
POST /api/auth/logout
GET /api/auth/me
PATCH /api/auth/me
POST /api/auth/password
```
Authenticated galleries:
@@ -232,6 +235,12 @@ Health:
GET /health
```
Swagger UI is available at `/swagger/index.html`; the generated Swagger document is also served at `/swagger/doc.json`. Regenerate the checked-in documentation after changing API annotations with:
```bash
make swagger
```
Photographer routes use an HTTP-only signed session cookie. Public visitor identity and gallery access are separate signed cookies; clients do not need accounts.
## Database
@@ -256,7 +265,7 @@ The schema does not store uploaded media content. `external_url` exists only to
```text
backend/
cmd/server/ API and worker startup
cmd/server/ Gin API router and worker startup
cmd/migrate/ dialect-aware SQL migration runner
cmd/seed/ demo photographer and gallery seed
internal/auth/ bcrypt auth, signed sessions, visitor access cookies
@@ -281,6 +290,8 @@ Preview and public delivery use the same `ClientGallery` component. The preview
Backend:
```bash
make test
make lint
```
Frontend: