Skip to content

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

Packages

Contributors

Languages