Modern bir Dungeons & Dragons (5e) web projesi.
Backend: Flask + SQLAlchemy (PostgreSQL) • Frontend: React
Amaç: DnD sınıfları, büyüler, ekipmanlar ve ırklar gibi verilerle karakter oluşturma, detay görüntüleme ve oyun mekaniği için sağlam bir temel sağlamak.
- Özellikler
- Mimari
- Hızlı Başlangıç
- Ortam Değişkenleri
- Veritabanı ve Veri Kaynakları
- Örnek API Uçları
- Proje Yapısı
- Geliştirme Rehberi
- Yol Haritası
- Katkı
- Lisans
- Teşekkür
- Karakter Oluşturma: Sınıf, ırk, yetenek puanları (point-buy), diller, ekipman ve başlangıç yetenekleri.
- Detay Sayfaları: Karaktere ait tüm ilişkili verilerin (spells, equipment, traits, skills, conditions) salt okunur görünümü.
- DnD 5e Verileri: Sınıflar, büyüler ve ekipmanlar gibi referans verilerle ilişkili şema.
- JWT Tabanlı Kimlik Doğrulama: Kendi karakterlerini oluşturma ve listeleme.
- Swagger/Flasgger Dokümantasyonu: API’yi canlı keşfetme / test etme.
- Modüler Mimari: Ayrık “backend” ve “frontend” klasörleri, temiz API katmanı.
- Backend: Flask + SQLAlchemy, Marshmallow şemaları, opsiyonel Alembic migrasyonları.
- Frontend: React (Vite), modern component yapısı, Form ve dropdown’lar ile dinamik seçimler.
- DB: PostgreSQL (ilişkisel model + DnD referans verileri).
- Python 3.11+
- Node.js 18/20+
- PostgreSQL 13+ (lokal veya docker)
cd backend
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
createdb dnd_test
export FLASK_APP=app.py
export FLASK_ENV=development
flask runcd frontend
npm install
cp .env.example .env
npm run devBackend .env (örnek):
FLASK_ENV=development
SECRET_KEY=change-me
JWT_SECRET_KEY=change-me-too
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/dnd_test
CORS_ORIGINS=http://localhost:5173
DEEPL_API_KEY=
Frontend .env (örnek):
VITE_API_BASE_URL=http://localhost:5000
- PostgreSQL üzerinde normalize tablolar.
- Kaynak veriler: 5e-bits/5e-database
POST /auth/login
POST /auth/register
GET /classes
GET /classes/{id}
GET /class-levels/{class_id}/{level}
GET /spells
GET /spells/{id}
POST /characters
GET /characters/my-characters
GET /characters/{id}dnd/
├─ backend/
│ ├─ app.py
│ ├─ config/
│ ├─ models/
│ ├─ schemas/
│ ├─ routes/
│ ├─ services/
│ ├─ utils/
│ ├─ migrations/
│ ├─ requirements.txt
│ └─ .env.example
├─ frontend/
│ ├─ src/
│ │ ├─ pages/
│ │ ├─ components/
│ │ ├─ services/
│ │ └─ styles/
│ ├─ index.html
│ ├─ package.json
│ └─ .env.example
├─ docs/
│ └─ images/
└─ README.md
- proficiency_choices için dinamik dropdown
- Point-Buy bütçe kontrolü
- Race ability bonus çoklu desteği
- Starting equipment otomatik doldurma
- Spell seçimlerinde tooltip desteği
- Read-only detay sayfası geliştirme
- Performans optimizasyonu
- Issue aç.
- Fork & branch oluştur.
- Test et, linter çalıştır.
- PR aç.
- 5e-bits/5e-database topluluğuna teşekkürler.
- Kırıkkale Üniversitesi Bilgisayar Mühendisliği projesi kapsamında geliştirildi.