---
title: Cilt365
description: Dermatolog tasarımlı bir anketi kişiselleştirilmiş bir rutine ve ürün eşleşmesine dönüştüren, klinik mantığı kod yerine düzenlenebilir veri olarak tutan klinik düzeyde bir cilt bakımı öneri motoru.
type: project
url: "https://www.bariscemant.com/tr/projects/cilt365"
year: 2026
role: Full Stack Developer
status: live
categories: [ai, backend, web]
technologies: [NestJS, TypeScript, Drizzle ORM, PostgreSQL, Redis, BullMQ, Google Gemini, Sharp, Next.js, Jest, Swagger, Sentry]
author: Baris Cem Ant
site: "https://www.bariscemant.com"
language: tr
---

# Cilt365

> Dermatolog tasarımlı bir anketi kişiselleştirilmiş bir rutine ve ürün eşleşmesine dönüştüren, klinik mantığı kod yerine düzenlenebilir veri olarak tutan klinik düzeyde bir cilt bakımı öneri motoru.

- **Built by**: Baris Cem Ant, Full Stack Developer (https://www.bariscemant.com)
- **Role**: Full Stack Developer
- **Year**: 2026
- **Status**: live
- **Organization**: Neon Apps — Full Stack Developer (https://neonapps.co)
- **HTML version of this page**: https://www.bariscemant.com/tr/projects/cilt365

## Overview

Klinik mantık bana değil dermatologlara aitti, bu yüzden onu hardcode etmek her revizyonu bir deploy'a dönüştürürdü. Tüm kural yüzeyini veritabanına taşıdım — sorular, cevap-gerçek eşlemeleri, eksen kalibrasyonu, klinik kurallar — ve motor bunu istek anında okuyor; böylece doktorlar bir mühendise ihtiyaç duymadan iterasyon yapabiliyor. Motor, cevap kümesinden beş klinik ekseni puanlıyor, ikincil gerçekleri türetiyor, ardından bir rutin dalını seçmek ve herhangi bir ürün değerlendirilmeden önce sert içerik bloklarını uygulamak için öncelik sıralı bir klinik güvenlik modu kademesi çalıştırıyor. Asıl problem klinik revizyonları güvenli hale getirmekti: her doktor revizyonu, uç durumları bir önceki versiyonla çelişen bir spesifikasyon olarak geliyordu, bu yüzden herhangi bir cevap kümesini canlı motordan geçiren, anlık görüntüsünü alan, bir değişiklikten sonra yeniden çalıştıran ve doktorun kaydettiği beklentiyle karşılaştıran bir simülasyon test düzeneği kurdum — motora dokunmadan önce doktorun kendi QA tablosunu testlere dönüştürerek, bu da yeni kuralların eski kuralları sessizce bozmasını defalarca yakaladı. Ayrıca neyin yeniden hesaplanacağı ile neyin dondurulacağı arasında bir sınır çizdim: sunum çıktısı her okumada yeniden türetiliyor, böylece bir düzeltme, migration ya da yeniden gönderim olmadan mevcut profilleri geriye dönük olarak onarıyor; buna karşılık çözümlenen cilt tipi gönderim anında donduruluyor, böylece bir eşik değişikliği zaten bir sonucu olan birini sessizce yeniden sınıflandırmıyor. Bu sınır, bir düzeltme ile bir olay arasındaki farkı oluşturuyor.

## Technologies

NestJS, TypeScript, Drizzle ORM, PostgreSQL, Redis, BullMQ, Google Gemini, Sharp, Next.js, Jest, Swagger, Sentry

## Key Features

- Veri olarak klinik mantık — sorular, kalibrasyon, kurallar ve etiketler düzenlenebilir satırlardır; dermatologlar deploy olmadan revizyonları hayata geçirir
- Güvenlik kademesine sahip çok eksenli puanlama — beş klinik endeks, herhangi bir öneriden önce sert içerik bloklarını (gebelik, aktif ilaç kullanımı, teşhis edilmiş durumlar) uygulayan öncelik sıralı bir mod çözücüyü besler
- Klinik inceleme için simülasyon test düzeneği — bir revizyonu yayınlanmadan önce doğrulamanın birincil kapısı olarak herhangi bir profilin anlık görüntüsünü alır, yeniden çalıştırır ve doktorun kaydettiği beklentiyle karşılaştırır
- Yapısal olarak izole edilmiş ürün kataloğu — öneriler ayrı, salt okunur bir veritabanını sorgular, bu sayede motor ürün doğruluk kaynağını değiştiremez
- Bir feature gate arkasında paralel motor sürümleri — iki klinik model tek bir şemadan hizmet verir, bu da yenisinin geçiş öncesinde gerçek trafik üzerinde doğrulanmasını sağlar
- Tasarım gereği geriye dönük çalışan sunum katmanı — sonuç etiketleri okuma anında yeniden hesaplanır, böylece düzeltmeler mevcut kullanıcılara anında ulaşır; çözümlenen cilt tipi ise sessiz yeniden sınıflandırmayı önlemek için dondurulmuş kalır

## Screenshots

- https://www.bariscemant.com/images/projects/cilt365/1.png

## Other projects by Baris Cem Ant

- [Voxx](https://www.bariscemant.com/tr/projects/voxx.md): Yapay zeka destekli antrenman planlaması, giyilebilir cihaz entegrasyonu ve gerçek zamanlı yapay zeka koçluk sohbeti sunan, GCP Cloud Run üzerinde serverless çalışan ve Terraform ile yönetilen altyapıya sahip bir fitness ve sağlık takibi mobil uygulaması için FastAPI backend'i.
- [Saywize](https://www.bariscemant.com/tr/projects/saywize.md): İçerik üreticileri ve markalar için, kitle duyarlılığı ve ölçeklenebilir büyüme içgörülerine odaklanan yapay zeka destekli bir YouTube analitik platformu.
- [FastAPI Boilerplate](https://www.bariscemant.com/tr/projects/fastapi-boilerplate.md): Kimlik doğrulama, chatbot modülleri, middleware ve dağıtım iş akışlarına sahip, üretime hazır bir FastAPI starter'ı.