Mapa kodu
Proposition Studio w skali.
Każdy plik źródłowy studia renderingu AI, które buduję i prowadzę, razem 1473, zmierzony w liniach i przypisany do warstwy. Liczby pochodzą prosto z repozytorium z dnia snapshotu.
Co robi
Przeglądarkowa aplikacja do wizualizacji architektonicznych. Architekt wgrywa zrzut z modelu 3D i dostaje obraz, który wygląda jak zdjęcie gotowego budynku, w tym samym kadrze. Potem zmienia fragmenty, buduje warianty, a każda wersja zostaje w projekcie.
- 01→
Upload
Zrzut viewportu, model bez materiałów, makieta albo zdjęcie. Bez wtyczki, bez eksportu.
- 02→
Zaznacz
Kliknij obiekt, wskaż powierzchnię albo zamaluj pędzlem. Do czterech opisanych obszarów, każdy z własną instrukcją.
- 03→
Referencje
Próbniki materiałów i zdjęcia elewacji, do czterech na generację. Referencję można przypiąć do jednego obszaru.
- 04→
Generuj
Blokada kamery trzyma kąt, kadr i bryłę, więc warianty różnią się tylko tym, co zmieniono.
- 05↺
Rozgałęź
Każdy wynik może być kolejnym źródłem. Pasek historii pokazuje ścieżkę, nieudane kroki trafiają do archiwum.
Repozytorium jako rzut
Każde pomieszczenie to katalog, każdy kafel to plik. Powierzchnia to liczba linii, kolor to warstwa, kreskowanie oznacza testy. Najedź lub stuknij kafel.
+ 24 mniejszych katalogów
Kod i testy w każdej warstwie
Pełny pasek to kod, kreskowany to testy. Ostatnia kolumna to udział testów w warstwie.
Najdłuższe pliki
Najdłuższy moduł to rekonsyliacja płatności, 3428 linii, a jego test integracyjny jest prawie tak samo długi: 3097.
- 013428lib/admin-stripe-reconciliation.server.ts
- 023097lib/admin-stripe-reconciliation.postgres.integration.test.ts
- 032590apps/marketing/app/styles/app.css
- 042542lib/credit-ledger.server.test.ts
- 052175lib/credit-ledger.server.ts
- 062092lib/stale-pre-provider-recovery.server.test.ts
- 071997lib/migration-chain.postgres.integration.test.ts
- 081869lib/admin-economics.server.ts
- 091693routes/api.projects.$projectId.generation-jobs.ts
- 101561lib/paid-credit-expiry.postgres.integration.test.ts
- 111502routes/admin.test.ts
- 121445lib/generation-jobs.server.ts
Jak długi jest typowy plik
67% plików ma mniej niż 200 linii; mediana, 118, wypada w najciemniejszym słupku. Tylko 9 przekracza 1600.
317 075 linii. 147 000 z nich istnieje tylko po to, żeby sprawdzać, czy reszta działa.
Jak to zbudowałem
Proposition Studio działa jako dwie aplikacje React Router v7 na Cloudflare Workers, produkt i strona marketingowa, plus wewnętrzny Worker do uploadu do R2. Dane są w Postgresie na Neon z wersjonowanymi migracjami SQL, media w R2.
Płatności idą przez Stripe z księgą kredytów i rekonsyliacją, pilnowane przez panel administracyjny. Interfejs jest po angielsku i po polsku. Zbudowałem to jako orkiestrator agentów kodujących: każdy pull request przechodzi CI, a merge i deploy na produkcję to dwie osobne, ręczne bramki.