Skip to content

A comprehensive MVC-based event management system powered by AI agents for automated scheduling and resource optimization. Features intelligent planning workflows and scalable architecture.

Notifications You must be signed in to change notification settings

enesimo16/Envent-AI-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 

Repository files navigation

🎫 ENVENT — Premium Event & Ticketing Platform - WEB PROGRAMMING PROJECT

.NET Core ASP.NET MVC EF Core SQL Server Three.js

  • ASP.NET Core MVC
  • Entity Framework Core
  • Identity
  • Razor/Tag Helpers
  • EF Core, code first yaklaşımı
  • CRUD
  • Dependency Injection
  • View Models
  • Migration

💡 About ENVENT

ENVENT goes beyond a classic event listing application. It is a secure, performance-oriented, and modern Event Management & Ticketing Platform designed with enterprise scalability in mind.

Although developed as a final project for the Web Programming course at Sakarya University, its architecture, design patterns, and advanced optimizations are modeled after real-world SaaS products.

Core Philosophy: Not just "making it work," but applying Clean Architecture, SOLID principles, and Scalability from end to end.


MANDATORY REQUIREMENTS

1. ASP.NET Core Identity

  • Register and Login pages
  • [Authorize] attribute usage
  • Rol bazlı yetkilendirme:
    • [Authorize(Roles = "Admin")]
    • [Authorize(Roles = "organizer")]
  • Yetkisiz erişimler için AccessDenied sayfası

2. Entity Framework Core (Code First)

  • Tüm varlıklar için Entity sınıfları
  • DbContext yapılandırması
  • İlişkiler:
    • One-to-Many (Category → Event)
    • Many-to-Many (User ↔ Event)
  • EF Core Migrations kullanımı

3. Mimari & Best Practices

  • MVC mimarisi (Model – View – Controller)
  • Repository Pattern
  • Dependency Injection
  • ViewModel / DTO kullanımı
  • Overposting saldırılarına karşı koruma

4. Temel İşlevsellik

  • Category, Event, Venue için tam CRUD
  • Data Validation:
    • [Required], [StringLength]
    • asp-validation-for ile hata gösterimi

BONUS ÖZELLİKLER

In-Memory Caching & Performans

  • Sık kullanılan veriler RAM üzerinde cache’lenmiştir
  • Veritabanı sorgu sayısı azaltılmıştır
  • Daha hızlı sayfa yükleme süreleri

AI Kullanımı

  • AI kullanılarak resim ve açıklama ekleme

Dinamik QR Kod Biletleme Sistemi

  • Kullanıcıya özel QR kod üretimi
  • Benzersiz ve anlık oluşturma
  • Sahte bilet riskinin önlenmesi

TinyMCE Rich Text Editör

  • Admin panelinde zengin metin düzenleme
  • HTML destekli etkinlik açıklamaları

SweetAlert2 Bildirim Sistemi

  • Silme / güncelleme / hata bildirimleri
  • Modern pop-up geri bildirimler

Hangfire Otomatik Mail Sistemi

  • Arka planda çalışan job’lar
  • Google Mail entegrasyonu
  • Otomatik mail gönderimi

Swagger Entegrasyonu

  • API dokümantasyonu
  • Test edilebilir uç noktalar

Harita (MAP) Entegrasyonu

  • Etkinlik mekanlarının harita üzerinde gösterimi

Modern & 3D Arayüz

  • Three.js destekli 3D animasyonlar
  • Modern UI/UX yaklaşımı

Chart.js ve AJAX Kullanımı

  • Admin dashboardına dinamik ajax kullanılarak chart.js kullanarak güzel bir tasarım
  • Bu elde edilen görseller excele kayıt edilerek indirilme özelliği

ENVENT Mimari Yaklaşımı

ENVENT, Clean Architecture prensipleri esas alınarak geliştirilmiştir:

  • Katmanlar arası gevşek bağlılık (Loose Coupling)
  • Separation of Concerns
  • Test edilebilir ve sürdürülebilir yapı

📂 Proje Klasör Yapısı

WebProgramlama/
├── 📂 Core
│   └── 📂 Interfaces            # Soyutlama Katmanı
│       ├── IGenericRepository.cs
│       ├── IEventRepository.cs
│       └── IUnitOfWork.cs
│
├── 📂 Controllers               # İş Mantığı (Business Logic)
│   ├── HomeController.cs        # (Caching ve MiniProfiler burada)
│   ├── EventController.cs       # (Etkinlik işlemleri)
│   ├── CategoryController.cs    # (Admin Kategori yönetimi)
│   ├── VenueController.cs       # (Mekan yönetimi)
│   ├── AdminController.cs       # (Dashboard işlemleri)
│   └── AccountController.cs     # (Login/Register/Logout)
│
├── 📂 Data
│   ├── 📂 Migrations            # Veritabanı versiyon takibi
│   └── AppDbContext.cs          # EF Core Context Ayarları
│
├── 📂 Models                    # Veritabanı Varlıkları (Entities)
│   ├── Event.cs                 # (Etkinlik Tablosu)
│   ├── Category.cs              # (Kategori Tablosu)
│   ├── Venue.cs                 # (Mekan Tablosu)
│   ├── UserEvent.cs             # (Many-to-Many Ara Tablo)
│   └── ApplicationUser.cs       # (IdentityUser Genişletmesi)
│
├── 📂 Repositories              # Veri Erişim Katmanı (Repository Pattern)
│   ├── GenericRepository.cs
│   └── EventRepository.cs
│
├── 📂 Services                  # Yardımcı Servisler
│   └── RoleSeedService.cs       # (Otomatik Veri ve Admin Oluşturma)
│
├── 📂 ViewModels                # Veri Transfer Nesneleri (DTOs)
│   ├── EventViewModel.cs
│   ├── RegisterViewModel.cs
│   └── LoginViewModel.cs
│
└── 📂 Views                     # Arayüz Dosyaları (Razor Views)
    ├── 📂 Account
    │   ├── Login.cshtml
    │   ├── Register.cshtml
    │   ├── Profile.cshtml
    │   ├── ChangePassword.cshtml
    │   └── AccessDenied.cshtml
    │
    ├── 📂 Admin
    │   ├── Index.cshtml         # (Admin Dashboard)
    │   ├── Dashboard.cshtml     # chart.js ajax kullanımı dinamik görüntü
    │   └── Users.cshtml
    │
    ├── 📂 Category
    │   ├── Index.cshtml         # (Listeleme)
    │   ├── Create.cshtml        # (Ekleme Formu)
    │   ├── Edit.cshtml          # (Düzenleme Formu)
    │   ├── Detail.cshtml
    │   └── Delete.cshtml        # (Silme Onayı)
    │
    ├── 📂 Event
    │   ├── Index.cshtml
    │   ├── Details.cshtml       # (QR Kod burada gösterilir)
    │   ├── Create.cshtml        # (TinyMCE burada çalışır)
    │   ├── Edit.cshtml
    │   ├── Calendar.cshtml
    │   ├── Payment.cshtml
    │   ├── Participants.cshtml
    │   └── Events.cshtml
    │ 
    ├── 📂 Venue
    │   ├── Index.cshtml
    │   └── Create.cshtml
    │
    ├── 📂 Home
    │   ├── Index.cshtml         # (3D Arka Plan ve Kartlar)
    │   └── Wrapped.cshtml
    └── 📂 Shared
        ├── _Layout.cshtml       # (Navbar ve Footer)
        └── _ValidationScriptsPartial.cshtml

3️Otomatik Seed Data

Uygulama ilk kez çalıştırıldığında sistem otomatik olarak:

  • Admin kullanıcısı
  • Roller
  • Kategoriler
  • Mekanlar
  • Örnek etkinlikler

oluşturur.

Admin ve Organizer Giriş Bilgileri


Kurulum ve Çalıştırma Talimatları

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

Gereksinimler

  • .NET 8.0 SDK (veya güncel LTS sürümü)

  • MS SQL Server (LocalDB kullanılabilir)

Projenin İndirilmesi*

Veritabanının Oluşturulması Proje Code-First yaklaşımıyla geliştirilmiştir. Veritabanı tablolarını ve şemasını SQL Server üzerinde oluşturmak için Terminal (veya Package Manager Console) üzerinden şu komutu çalıştırın:

  • dotnet ef database update
  • (Not: Bu komut, Migrations klasöründeki yapılandırmaları okuyarak veritabanını otomatik olarak oluşturacaktır.)

Uygulamanın Başlatılması

dotnet run

Otomatik Veri (Seeding) Mekanizması

  • Uygulama ilk kez çalıştığında RoleSeedService devreye girerek; gerekli Admin ve Organizer hesaplarını, rolleri, kategorileri ve örnek Şener Şen temalı etkinlikleri veritabanına otomatik olarak yükleyecektir. Herhangi bir manuel SQL kaydı oluşturmanıza gerek yoktur.

🎯 Projenin Akademik ve Teknik Kazanımları

  • ASP.NET Core MVC mimarisinin derinlemesine kullanımı
  • EF Core Code First yaklaşımı
  • Repository Design Pattern
  • Identity & Security best practices
  • Performans optimizasyonu
  • Gerçek dünya projelerine yakın mimari deneyimi

📞 İletişim & Bilgiler

  • Geliştirici: Enes Yel
  • Öğrenci No: B231200053
  • Bölüm: Bilişim Sistemleri Mühendisliği
  • Üniversite: Sakarya Üniversitesi

ENVENT, bir ders projesinden çok daha fazlası: Modern, güvenli ve ölçeklenebilir bir etkinlik yönetim vizyonu.

About

A comprehensive MVC-based event management system powered by AI agents for automated scheduling and resource optimization. Features intelligent planning workflows and scalable architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages