Bu proje, Sportlink web uygulamasının backend kısmıdır. TypeScript ve Supabase kullanılarak geliştirilmiştir.
- Node.js
- Express.js
- TypeScript
- Supabase (PostgreSQL)
- Prisma ORM
- Jest (Test)
- Projeyi klonlayın:
git clone https://github.com/your-username/sportlink-web-backend.git
cd sportlink-web-backend
- Bağımlılıkları yükleyin:
npm install
.env
dosyasını oluşturun ve gerekli değişkenleri ayarlayın:
PORT=3000
NODE_ENV=development
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
DATABASE_URL=your_database_url
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=1d
- Prisma istemcisini oluşturun:
npm run prisma:generate
- Geliştirme modunda çalıştırın:
npm run dev
src/
├── config/ # Yapılandırma dosyaları
├── controllers/ # İstek işleyicileri
├── middleware/ # Ara yazılımlar
├── models/ # Veri modelleri
├── routes/ # API rotaları
├── services/ # İş mantığı
├── utils/ # Yardımcı fonksiyonlar
└── index.ts # Uygulama giriş noktası
POST /api/auth/register
- Yeni kullanıcı kaydıPOST /api/auth/login
- Kullanıcı girişiPOST /api/auth/logout
- Kullanıcı çıkışıGET /api/auth/me
- Mevcut kullanıcı bilgilerini getirPOST /api/auth/reset-password
- Şifre sıfırlama
GET /api/users
- Tüm kullanıcıları getir (sadece admin)GET /api/users/:id
- Belirli bir kullanıcıyı getir
GET /api/profile
- Kullanıcı profilini getirPUT /api/profile
- Kullanıcı profilini güncelle
Bu proje, .cursorrules
dosyasında belirtilen Sportlink Development Standards (SCDS) kurallarına uygun olarak geliştirilmiştir.
Bu projede veritabanı şemasını yönetmek için Prisma kullanılmaktadır.
Supabase'de mevcut bir veritabanınız varsa, şema dosyasını oluşturmak için:
npx prisma db pull
Şemada değişiklik yaptıktan sonra yeni bir migrasyon oluşturmak için:
npm run prisma:migrate:dev -- --name migration_ismi
Üretim ortamında migrasyonları uygulamak için:
npm run prisma:migrate:deploy
Veritabanınıza örnek veriler eklemek için:
npm run prisma:seed
Bu projedeki Supabase PostgreSQL veritabanı, Prisma ORM aracılığıyla yönetilmektedir:
- Prisma Schema:
prisma/schema.prisma
dosyası veritabanı modellerini tanımlar. - Prisma Client: Uygulama içinde veritabanı işlemlerini gerçekleştirmek için kullanılır.
- Migrations: Şema değişikliklerini güvenli bir şekilde takip etmek ve uygulamak için kullanılır.
Veritabanınızı görsel bir arayüzle incelemek ve düzenlemek için:
npm run prisma:studio
API dokümantasyonu Swagger ile sunulmaktadır. Uygulamayı çalıştırdıktan sonra aşağıdaki adresten erişilebilir:
http://localhost:3000/api-docs