Akıllı Kampüs: ekipçe geliştirdiğimiz SmartCampus

QR yoklama, yemekhane rezervasyonu ve öğrenci cüzdanını bir araya getirdiğimiz SmartCampus projesinin geliştirme notları.

  • Next.js
  • .NET 8
  • SignalR
  • JWT
  • Docker
  • CI/CD
  • iyzico
Canlı demoyu aç
Akıllı Kampüs: ekipçe geliştirdiğimiz SmartCampus ekran görüntüsü

SmartCampus'u Web ve Mobil Programlama dersi kapsamında Neşe Sarp, Gökçe Nur Küçük ve Erdem Bekir Aktürk ile geliştirdik. Yoklama, yemek rezervasyonu ve cüzdan işlemlerini aynı uygulamada topladığımız bitirme projemiz. Ekip olarak hem önyüzde hem de sunucu tarafında çalıştık.

Kampüste hangi işleri bir araya getirdik?

Öğrenci, dersin QR kodunu okutarak yoklamaya katılabiliyor; günlük yemek menüsünü görüp rezervasyon yapabiliyor. Cüzdanına iyzico üzerinden bakiye yükleyebiliyor, harcamalarını buradan takip edebiliyor. SignalR ile gelen bildirimler de sayfayı yenilemeden ekrana yansıyor.

Bu akışların arkasında kullanıcı hesabı ve yetki kontrolü var. Girişte JWT kullanıyor, formlardan gelen bilgileri hem arayüzde hem sunucuda doğruluyoruz.

Uygulamanın teknik yapısı

Arayüzü Next.js, React 19 ve Tailwind CSS ile hazırladık. .NET 8 Web API tarafında istekleri karşılayan controller'ları, iş kurallarını ve veri modellerini ayırdık. Veritabanı işlemlerinde Entity Framework Core ve MySQL kullandık.

Cüzdana bakiye yükleme bölümünde iyzico entegrasyonu yer alıyor. Ödeme isteği sunucuda oluşturuluyor; tutar, para birimi ve işlem bilgileri bu isteğe ekleniyor.

Docker'dan canlı ortama

Frontend için bir Dockerfile, backend tarafında ise sistemi birlikte çalıştıran Docker Compose yapılandırması hazırladık. Yayına geçerken maliyeti gözeterek önyüzü Vercel'e, backend ve MySQL'i bir sanal makineye yerleştirdik.

Geliştirme dalımız main-dev. Değişiklikler main dalına alındığında Google Cloud Build üzerinden dağıtım süreci tetikleniyor. Bu çalışma, uygulamayı geliştirmek kadar farklı ortamlarda çalıştırmanın da projenin bir parçası olduğunu görmemizi sağladı.

Kodlar ve demo

Frontend deposunda arayüzü, backend deposunda API ve iş kurallarını inceleyebilirsin.

Canlı demoya giriş için yayımlanmış test hesabı: student1@smartcampus.edu / Password123!. Bu hesabın veri ekleme ve değiştirme yetkileri sınırlı. Yeni kayıt akışı, kullanılan e-posta servisinin kotasına bağlı olarak kullanılamayabiliyor.

Projede birlikte çalıştığım Neşe, Gökçe ve Erdem'e teşekkürler.