Bu proje, toplantı odalarının durumunu takip etmek ve yönetmek için geliştirilmiş bir web uygulamasıdır. Microsoft Graph API kullanarak Exchange/Outlook takvimlerinden toplantı bilgilerini çeker ve görsel bir arayüz ile odaların mevcut durumunu gösterir.
Bu proje iki ana bileşenden oluşur:
- RoomStatusWebApp/: .NET Core Web API projesi
- Microsoft Graph API entegrasyonu
- Entity Framework Core ile veritabanı yönetimi
- SQL Server veritabanı
- Swagger API dokümantasyonu
- room-status-app/: React uygulaması
- Modern ve responsive kullanıcı arayüzü
- Gerçek zamanlı oda durumu gösterimi
- Takvim entegrasyonu
- .NET 8.0 SDK
- Node.js (v16 veya üzeri)
- SQL Server (LocalDB, Express veya üretim sürümü)
- Microsoft Graph API erişimi
-
Veritabanı bağlantısını yapılandırın:
cd RoomStatusWebAppappsettings.jsondosyasında connection string'i güncelleyin:{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=RoomStatusDb;Trusted_Connection=true;MultipleActiveResultSets=true" } } -
Veritabanı migration'larını çalıştırın:
dotnet ef database update
-
Uygulamayı çalıştırın:
dotnet run
API varsayılan olarak
https://localhost:7000adresinde çalışacaktır.
-
Bağımlılıkları yükleyin:
cd room-status-app npm install -
Uygulamayı çalıştırın:
npm start
React uygulaması
http://localhost:3000adresinde çalışacaktır.
- Microsoft Graph API Entegrasyonu: Exchange/Outlook takvimlerinden toplantı bilgilerini çeker
- Oda Yönetimi: Toplantı odalarının eklenmesi, düzenlenmesi ve silinmesi
- Toplantı Takibi: Geçmiş ve gelecek toplantıların veritabanında saklanması
- Otomatik Temizlik: Eski toplantı kayıtlarının otomatik silinmesi
- RESTful API: Swagger ile dokümante edilmiş API endpoints
- Gerçek Zamanlı Durum: Odaların mevcut durumunu anlık gösterim
- Responsive Tasarım: Mobil ve masaüstü uyumlu arayüz
- Takvim Görünümü: Toplantıların tarih ve saat bazında görüntülenmesi
- Filtreleme: Oda, tarih ve durum bazında filtreleme
GET /room/rooms- Tüm odaları listelerGET /room/events- Belirli bir odanın toplantılarını getirirPOST /room/save-events- Oda toplantılarını veritabanına kaydeder
roomEmail: Oda e-posta adresiroomId: Oda ID'sistart: Başlangıç tarihiend: Bitiş tarihi
Id: Benzersiz kimlikName: Oda adıEmail: Oda e-posta adresiLocation: Oda konumuCapacity: KapasiteIsActive: Aktif durumu
Id: Benzersiz kimlikSubject: Toplantı konusuStartTime: Başlangıç zamanıEndTime: Bitiş zamanıOrganizer: OrganizatörAttendees: KatılımcılarRoomId: Oda referansı
Microsoft Graph API kullanımı için aşağıdaki ayarları yapmanız gerekir:
- Azure Portal'da uygulama kaydı oluşturun
- Graph API izinlerini ekleyin (Calendars.Read)
- Client ID ve Client Secret'ı
appsettings.json'a ekleyin
Frontend ve backend arasındaki iletişim için CORS ayarları yapılandırılmıştır.
- Backend'de yeni controller veya service ekleyin
- Gerekirse yeni model sınıfları oluşturun
- Migration oluşturun:
dotnet ef migrations add MigrationName - Frontend'de yeni bileşenler ekleyin
# Backend testleri
cd RoomStatusWebApp
dotnet test
# Frontend testleri
cd room-status-app
npm testBu proje MIT lisansı altında lisanslanmıştır.
- Bu repository'yi fork edin
- Yeni bir branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add some amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
Proje ile ilgili sorularınız için issue açabilir veya geliştirici ile iletişime geçebilirsiniz.