NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Kendini kıdemli full-stack mobil mühendisi + 3D grafik/ML uzmanı olarak konumla. Amaç, kullanıcının fotoğraflarından/telefon taramasından kişisel bir 3D figür üretip önizleten ve siparişe dönüştüren üretim-hazır bir uygulamayı uçtan uca tasarlamak ve kod iskeletini oluşturmaktır.

Hedef
• iOS (öncelik) + Android için React Native + Expo mobil uygulaması.
• Node.js (NestJS) backend + PostgreSQL veritabanı.
• 3D işleme: Python servis (FastAPI) + Blender (headless) veya Instant-NGP/Photogrammetry (Meshroom/Colmap) ile fotodan mesh çıkarma, otomatik retopology ve STL/OBJ/GLB çıktı.
• Dosya saklama: S3 uyumlu (MinIO veya AWS S3).
• Ödeme: Stripe (TR için İyzico alternatifi opsiyon).
• Bildirim: Expo Notifications.
• Analitik: PostHog.
• CI/CD: GitHub Actions.

Ürün Özellikleri (MVP)
1. Giriş/Üyelik: e-posta + şifre, Apple/Google ile giriş, JWT ve refresh token.
2. Model Oluşturma:
• Tek/çok fotoğraftan veya kısa video/AR taramasından 3D model üret.
• Otomatik ölçek, poze düzeltme (T-pose), texture baking.
• Renk/stand/kıyafet preset’leri (shader parametreleri).
3. Önizleme: Uygulamada GLTF/GLB gerçek-zamanlı görüntüleme (react-three-fiber), döndürme/zoom, varyant seçimi.
4. Sipariş: Malzeme (PLA/Resin), boy (10/15/20 cm), renk; adres; kargo ücreti; ödeme.
5. İş Akışı: Job kuyruğu, iş durumları: uploaded → processing → preview_ready → ordered → print_ready → shipped → delivered.
6. 3D Baskı Çıktısı: STL (tek renk) ve OBJ/MTL veya GLB (tam renk) indirme.
7. AR Önizleme (opsiyonel): iOS için USDZ export ve QuickLook’ta aç.
8. Gizlilik: Yüklenen medya ve modeller kullanıcı onayıyla saklanır; silme talebi ile kalıcı silme.

Teknik Gereksinimler
• Monorepo (pnpm workspaces): apps/mobile, apps/api, apps/processor, packages/shared.
• API Sözleşmesi: OpenAPI 3; tipler packages/sharedda.
• Kimlik: NestJS + Passport (JWT), rate limit, CORS.
• Kuyruk: BullMQ (Redis).
• Depolama: S3 signed URL upload/download.
• 3D İşleme Servisi: FastAPI + Blender Python, ayrı Docker imajı. API, jobId alır, S3’ten medyayı indirir, çıktıları S3’e yazar, job durumunu Redis’e yazar.
• Hata/Gözlemlenebilirlik: pino log, Sentry, healthchecks.
• Test: vitest/jest, Playwright (mobil web preview için opsiyon).
• Lokal geliştirme: docker-compose (postgres, redis, minio, processor).

Mimari Çıktılar (oluştur)
1. Yüksek seviye diagram açıklaması (metin): Mobil ↔ API ↔ Queue ↔ Processor ↔ S3/Postgres.
2. Veri Modeli (DDL):
• users(id, email, password_hash, name, created_at)
• assets(id, user_id, type[photo,video,mesh,texture,preview], s3_key, bytes, created_at)
• jobs(id, user_id, status, input_asset_ids[], output_asset_ids[], params jsonb, error, created_at, updated_at)
• orders(id, user_id, job_id, variant_id, amount_cents, currency, address jsonb, status, created_at)
• variants(id, name, height_mm, material, color, price_cents)
• payments(id, order_id, provider, provider_ref, status, created_at)
3. REST Endpoints (örnek):
• POST /auth/register | /auth/login
• POST /assets/upload-url → {key, url, fields}
• POST /jobs body: {inputAssets:[ids], pipeline:"photo_to_mesh", params:{pose:"T", output:"glb"}}
• GET /jobs/:id
• GET /jobs/:id/preview (signed)
• GET /variants
• POST /orders
• POST /payments/stripe/webhook
4. Queue İş Tanımları: photo_to_mesh, mesh_cleanup, bake_textures, export_stl, export_glb, make_usdz.
5. 3D Pipeline (Blender/Python) sözde kodu:
• fotoğrafları hizala → dense reconstruction → mesh export
• remesh + decimate hedef poly sayısı
• UV unwrap → texture bake (albedo, normal, roughness)
• poz standardizasyonu (Auto-Rig Pro/Basic rig + T-pose)
• export_glb() ve export_stl().

Mobil Uygulama İskeleti (oluştur)
• React Native + Expo Router.
• Ekranlar: Auth, Home, Capture, UploadReview, ModelViewer, Variants, Checkout, Orders.
• Capture: çoklu foto çekimi yönergeleri; video’dan frame örnekleme.
• ModelViewer: react-three-fiber ile GLTF/GLB gösterimi; orbit controls; metalness/roughness slider’ları.
• State: zustand + React Query.
• Env: .env ile API URL’leri.

Güvenlik & Uyumluluk
• Tüm dosya erişimleri signed URL.
• PII ve ödeme verisi ayrımı; Stripe ile PCI yükünün delegasyonu.
• Kullanıcı veri silme uç noktası ve S3 yaşam döngüsü (otomatik temizleme).
• Telif: kullanıcı yüklemeleri için ToS; pornografi/nefret içeriği filtresi (Cloud Vision/NSFW model opsiyon).

Teslimatta İstediğim Çıktılar
1. Monorepo iskeleti ve çalışır docker-compose (postgres, redis, minio, api, processor).
2. NestJS API: yukarıdaki endpoint’ler, OpenAPI, auth akışı, Stripe test modu.
3. FastAPI Processor: bir örnek pipeline (dummy): yüklenen tek fotodan bir “placeholder” 3D baş modeli üretip GLB ve STL export eden fonksiyon (gerçekte Blender’da ico_sphere + texture placeholder; daha sonra gerçek fotogrametri ile değiştirilecek).
4. Mobil App: dosya yükleme (signed URL), job başlatma ve job durumu poll, GLB önizleme, checkout akışı (test kartı).
5. README: kurulum, env örnekleri, “make it run” adımları.
6. E2E demo komutu: pnpm dev ile hepsi ayağa kalksın; örnek kullanıcı ile demo.

Kod Kalitesi Kuralları
• TypeScript her yerde, kesin tipler; zod ile istek doğrulama.
• Hata mesajları JSON: {code, message, details}.
• Lint/format: ESLint + Prettier; CI’da test ve build şart.
• Büyük dosyalar için tus-protocol veya çok parçalı upload.

Ekstra (isteğe bağlı)
• iOS’ta USDZ export ve QuickLook entegrasyonu.
• İş iptali/yeniden deneme butonları.
• Çok dilli (TR/EN) i18n.

Başla
• Önce monorepo ve docker-compose’u kur.
• Ardından API’yi ve upload → job → preview uçtan uca akışını çalışır hale getir.
• Daha sonra mobil tarafta Capture → Upload → Preview akışını bağla.
• Son olarak ödeme ve siparişi ekle.
• Tüm komutları, klasör yapısını ve örnek kodu üret; açıklama yerine çalışan iskelet ver.
     
 
what is notes.io
 

Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 14 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.