Skip to content

Latest commit

 

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DPÜ Menzil | Akıllı Kampüs İletişim Platformu

.NET 10 React 19 Vite 8 TailwindCSS PostgreSQL Docker Cyber Security

DPÜ Menzil, Kütahya Dumlupınar Üniversitesi öğrencileri ve personeli için geliştirilmiş; kampüs içi duyuru, geri bildirim ve anlık iletişim odaklı tam donanımlı (Full-Stack) bir platformdur. Proje, modern yazılım mimarileri ve siber güvenlik standartları (OWASP prensipleri) göz önünde bulundurularak inşa edilmektedir.


🏗️ Proje Yapısı (Monorepo)

Proje, frontend ve backend mimarilerinin tek bir repoda düzenli bir şekilde yönetilmesi amacıyla şu klasör yapısında kurgulanmıştır:

  • backend/: .NET 10 tabanlı Clean Architecture yapısı kullanan Web API projesi.
  • frontend/: React 19, Vite ve TailwindCSS kullanan modern siber punk temalı kullanıcı arayüzü.

🛠️ Mimari ve Güvenlik Özellikleri

1. Clean Architecture (Backend)

Backend tarafı sürdürülebilir ve test edilebilir olması için 4 ana katmandan oluşur:

  • API: İsteklerin karşılandığı, CORS politikalarının ve JWT yetkilendirmelerinin yönetildiği giriş noktası.
  • Application: İş mantığı, DTO yönetimi ve servislerin (Auth, Gonderi) bulunduğu beyin katmanı.
  • Core (Domain): Varlıklar (Entities) ve arayüzlerin (Interfaces) bulunduğu bağımsız merkez katman.
  • Infrastructure: Veritabanı yapılandırması (EF Core), Repository implementasyonları ve JWT/Şifreleme servislerinin katmanı.

2. Siber Güvenlik Yaklaşımı

  • CORS Güvenliği: Backend ve frontend arasındaki veri trafiği, Program.cs üzerinde tanımlı özel CORS politikalarıyla güvenli bir şekilde yönetilir.
  • Parola Güvenliği: Kullanıcı şifreleri veritabanına asla düz metin olarak kaydedilmez. BCrypt (Salted Hash) algoritması ile korunur.
  • Veri İzolasyonu (Anti-IDOR): Tahmin edilebilir ID saldırılarını önlemek amacıyla tüm tablolarda birincil anahtar olarak UUID (Guid) kullanılmaktadır.
  • DTO Kullanımı: Veritabanı modelleri asla doğrudan dışarıya açılmaz; veri transferleri DTO üzerinden güvenli bir şekilde yapılır.
  • Güvenli JWT Akışı: Giriş yapan kullanıcının token bilgisi frontend tarafında güvenli bir şekilde çözülerek (JWT Decode) rol bazlı (Öğrenci, Admin, İdari Personel) sayfa koruması sağlanır.

🚀 Kurulum ve Çalıştırma Rehberi

Projeyi yerel ortamınızda çalıştırmak için aşağıdaki adımları sırasıyla uygulayın:

1. Ön Gereksinimler

  • Bilgisayarınızda Docker Desktop, Node.js ve .NET 10 SDK kurulu olduğundan emin olun.

2. Veritabanını Başlatma (Docker)

Terminal üzerinden backend klasörüne gidin ve PostgreSQL konteynerini arka planda ayağa kaldırın:

cd backend
docker compose up -d

3. Veritabanı Şemasını Güncelleme (Migration)

Aynı dizinde (backend) bekleyen veritabanı güncellemelerini uygulayın:

dotnet ef database update --project src\DPUMenzil.API

4. Backend (API) Çalıştırma

API sunucusunu başlatmak için DPUMenzil.API klasörünün içinden projeyi çalıştırın:

cd src\DPUMenzil.API
dotnet run

5. Frontend (React) Çalıştırma

Yeni bir terminal sekmesi açın ve frontend klasörüne giderek bağımlılıkları yükleyip projeyi başlatın:

cd frontend/dpu-menzil
npm install
npm run dev
  • Arayüz URL: Tarayıcınızdan http://localhost:5173 adresine giderek platformu kullanmaya başlayabilirsiniz.
  • Not: Giriş yapabilmek için .env dosyanızdaki VITE_API_URL değerinin http://localhost:5127/api olarak ayarlandığından emin olun.

Projeyi Kapatma ve Temizlik

Çalışmanızı bitirdiğinizde sistem kaynaklarını serbest bırakmak için:

  • Hem backend hem de frontend terminallerinde Ctrl + C tuşlarına basarak yayınları durdurun.
  • backend klasöründe şu komutu çalıştırarak Docker konteynerini kapatın:
docker compose down

Geliştirici

Feyza Nur Dandal - Kütahya Dumlupınar Üniversitesi, Yazılım Mühendisliği

About

.NET 10 Clean Architecture ve React 19 ile geliştirilmiş; OWASP prensipleri, UUID (Anti-IDOR) ve BCrypt güvenliği barındıran monorepo akıllı kampüs iletişim platformu.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages