Bu depo; mobil (Expo/React Native) uygulaması, web sitesi (Next.js), admin paneli ve NestJS tabanlı API sunucusunu tek bir monorepo altında barındırır. Amaç; projeyi CV/portföy için incelemeye açmak, izinsiz kullanımı ise engellemektir.
Lisans uyarısı: Bu proje UNLICENSED (All Rights Reserved) kapsamındadır. Kod ve varlıkların izinsiz kullanımı, kopyalanması, dağıtımı veya türevi yasaktır. Ayrıntı için
LICENSEveASSETS_LICENSE.mddosyalarına bakın.
DerdiniSeveyim; insanların dertlerini/duygularını anonim veya profil bazlı paylaşabildiği, benzer ruh hâlindeki kişilerle eşleşip sohbet edebildiği ve topluluk desteği alabildiği bir sosyal destek ve eşleşme uygulamasıdır. Uygulama; keşif akışı, detay sayfaları, gerçek zamanlı mesajlaşma, bildirim, moderasyon ve premium deneyim gibi modüller içerir.
- Keşif akışı ve kategoriler: kullanıcılar farklı kategorilerde “dert” içeriklerini keşfedebilir.
- Eşleşme ve sohbet: uygun eşleşmeler önerilir; Socket.IO ile gerçek zamanlı mesajlaşma yapılır.
- Arama ve akıllı öneriler: Smart Search Assist ile daha hızlı içerik bulma deneyimi.
- Moderasyon ve raporlama: topluluk güvenliği için moderasyon ekranları.
- Bildirimler ve durum takibi: eşleşme/mesajlaşma ve sistem bildirimleri.
- Premium modüller: ekstra özellikler için premium ekranları.
Uygulama baştan sona TypeScript ile geliştirildi ve katmanlı/ayrık modüllerle kurgulandı. Monorepo düzeni; mobil, web/admin ve backend servislerinin birlikte versiyonlanmasını, ortak sözleşmelerin kolay yönetimini sağlıyor.
- Navigasyon: React Navigation (stack + bottom-tabs)
- Durum yönetimi: Zustand (
src/store/altındauserStore.ts,theme.tsx,profileModal.ts) - Veri yönetimi: TanStack Query (React Query) ile önbellekleme, refetch, hata/senkron kontrolü
- Gerçek zamanlı: Socket.IO client (
src/services/socket.ts,messagingSocket.ts) - Servisler:
src/services/apiService.tsve domain bazlı mini SDK’lar - UI/Animasyon: Reanimated, Lottie; özel komponentler (
src/components/*, ör.NeonAuroraBackground,AnimatedRGBText) - Yardımcılar:
src/utils/(offline cache, tarih formatlama, text yardımcıları) - Tipler:
src/types/
- Next.js (App Router), Tailwind CSS, React Query
- (İsteğe bağlı) NextAuth + Prisma ile oturum
website/son kullanıcıya açık web;admin-panel/operasyonel paneller için- Ortak API tüketimi:
.env.localüzerindenAPI_BASE_URL
- NestJS modüler yapısı (
server/src/modules/*) ve global validasyon (ValidationPipe), DTO yapısı, Swagger dokümantasyonu (/api/docs) - Prisma ORM + PostgreSQL; migration ve seed script’leri
- Redis entegrasyonu (cache veya kilitleme gibi senaryolar için hazır)
- Gerçek zamanlı mesajlaşma: Socket.IO (
/messagingendpoint) - Güvenlik: Helmet, CORS yapılandırması, JWT auth, Throttler (rate limit) bağımlılığı
- Dağıtım kolaylığı:
docker-compose.ymlile Postgres/Redis’i hızlıca ayağa kaldırma
- React Native (Expo): hızlı geliştirme, tek kod tabanıyla çoklu platform
- Next.js: SEO ve hibrit (SSG/SSR) ihtiyaçlarına uygun, üretimde olgun
- NestJS: ölçeklenebilir modüler mimari, tip güvenliği ve üretim best-practice’leri
- Prisma + Postgres: güçlü şema yönetimi, migration ve geliştirici deneyimi
- Redis: oturum/cache/queue gibi senaryolara esneklik
- Mobil Uygulama (Expo/React Native): kök dizin
- API Sunucusu (NestJS + Prisma + PostgreSQL + Redis):
server/ - Web Sitesi (Next.js):
website/ - Admin Paneli (Next.js):
admin-panel/ - Örnek kimlik doğrulama paketleri:
authentication-system/veauthentication-system/auth-system/
- Mobil: React Native (Expo), React 19, Zustand, React Query
- Web/Admin: Next.js, Tailwind, React Query, (opsiyonel) NextAuth, Prisma
- Sunucu: NestJS, Prisma, PostgreSQL, Redis, Swagger, Socket.IO
server/docker-compose.yml ile PostgreSQL ve Redis’i ayağa kaldırın:
cd server
docker compose up -dcd server
npm install
# Prisma şema ve migrasyon
npx prisma generate
npm run prisma:migrate
# (opsiyonel) seed
npm run prisma:seed
# Geliştirme
npm run dev- API: http://localhost:3000
- Swagger: http://localhost:3000/api/docs
Örnek .env (server/.env):
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/derdiniseveyim?schema=public"
REDIS_URL="redis://localhost:6379"
JWT_SECRET="change-me"
PORT=3000
NODE_ENV=development
cd website
npm install
npm run devVarsayılan: http://localhost:3000
Örnek .env.local:
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=change-me
API_BASE_URL=http://localhost:3000
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/derdiniseveyim?schema=public"
cd admin-panel
npm install
npm run devVarsayılan: http://localhost:3001
Örnek .env.local:
API_BASE_URL=http://localhost:3000
# kök dizinde
npm install
npm run start- Expo ile fiziksel cihaz/emülatörde açabilirsiniz.
- Opsiyonel
.env(kök):
API_BASE_URL=http://localhost:3000
- CORS, güvenlik başlıkları (helmet), rate-limit vb. ayarları prod’da sıkılaştırın.
- Tüm sırları güvenli yönetin (ENV/KeyVault vb.).
- Yedekleme ve gözlemleme (logs/metrics) stratejisi belirleyin.
- Kod lisansı: UNLICENSED – All Rights Reserved (bkz.
LICENSE). - Varlıklar: Kullanım kısıtları için
ASSETS_LICENSE.mddosyasını okuyun.
İzin/iş birliği talepleri için: https://github.com/yusufefe47