Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧰 Emir Baycan – C# Portfolio Website

Bu repository, kişisel portfolyo web sitemin kaynak kodlarını içerir. ASP.NET Core MVC ile geliştirilmiş; deneyimlerim, projelerim ve teknik becerilerim modern, sürdürülebilir ve modüler bir yapı ile sergilenir. PostgreSQL veritabanı ve Docker ile "one-click run" desteğiyle kolay kurulum sağlar.

🌐 Canlı Demo: csharp.emirbaycan.com.tr


🚀 Özellikler

  • Dinamik İçerik Yönetimi: Deneyimler, projeler ve yetenekler kolayca güncellenebilir.
  • Duyarlı Tasarım: Tüm cihazlarda sorunsuz görüntülenme.
  • Modüler Mimari: Kolayca ölçeklenebilir ve yeni özellikler eklenebilir.
  • SEO ve Performans Optimizasyonu: Hızlı yükleme, arama motoru dostu yapı.
  • Tek Tuşla Çalıştırma: Docker Compose ile uygulama ve PostgreSQL veritabanı tek komutla ayağa kalkar.
  • Güncel Proje Klasör Yapısı: Best-practice MVC dizin organizasyonu.

🛠️ Kullanılan Teknolojiler

  • Frontend: HTML5, CSS3, JavaScript, Razor Views
  • Backend: ASP.NET Core MVC, C#
  • Database: PostgreSQL (Dockerize edilmiş, Entity Framework Core ile)
  • Containerization: Docker & Docker Compose
  • Version Control: Git & GitHub
  • Deployment: Ubuntu sunucu, Apache (Reverse Proxy ile HTTPS destekli)

📁 Project Structure

MyPortfolioProject/
├── wwwroot/
│   ├── Admin-theme/
│   ├── login-theme/
│   ├── portfolio-theme/
│   ├── css/
│   ├── icons/
│   ├── images/
│   ├── js/
│   ├── lib/
│   ├── ProjectScreenShoots/
│   │   └── full_page.png
│   └── favicon.ico
├── Controllers/
│   ├── AboutController.cs
│   ├── AdminLoginController.cs
│   ├── ContactController.cs
│   ├── DefaultController.cs
│   ├── ExperienceController.cs
│   ├── FeatureController.cs
│   ├── MessageController.cs
│   ├── PortfolioController.cs
│   ├── ProfileController.cs
│   ├── SkillController.cs
│   ├── SocialMediaController.cs
│   ├── StatisticController.cs
│   ├── TestimonialController.cs
│   └── ToDoListController.cs
├── DAL/
│   ├── Context/
│   ├── Entities/
│   └── Extensions/
├── Helpers/
│   └── Images/
├── Migrations/
├── Models/
│   ├── ViewModel/
├── ViewComponents/
│   ├── AdminStatisticComponent/
│   └── LayoutViewComponents/
│       └── (Partial view component dosyaları)
├── Views/
│   ├── About/
│   ├── AdminLogin/
│   ├── Contact/
│   ├── Default/
│   ├── Experience/
│   ├── Feature/
│   ├── Message/
│   ├── Portfolio/
│   ├── Profile/
│   └── Shared/
│       └── Components/
│           └── (Partial view dosyaları)
├── appsettings.json
├── docker-compose.yml
└── Program.cs

Proje ekran görüntüleri:

wwwroot/ProjectScreenShoots/full_page.png

⚙️ Hızlı Başlangıç (One-Click Run)

Gereksinimler

  • Docker (Linux için native veya Docker Engine)
  • .NET 6 SDK (geliştirme ve EF komutları için)

Kurulum ve Çalıştırma (Geliştirme Amaçlı)

  1. Projeyi klonla:

    git clone https://github.com/emirbaycan/portfolio-c-sharp.git
    cd portfolio-c-sharp
  2. Veritabanını ve uygulamayı Docker Compose ile başlat:

    docker-compose up -d
  3. EF Core ile veritabanını oluştur:

    dotnet ef database update
  4. Uygulamayı çalıştır:

    dotnet run
    # veya:
    dotnet publish -c Release -o publish
    cd publish && dotnet MyPortfolioProject.dll

    Varsayılan olarak http://localhost:5000 üzerinden yayın yapar.


🔧 Yayın (Production Deployment)

Sunucu Kurulumu (Ubuntu)

  1. Şu klasörü sunucuya kopyalayın:

    dotnet publish -c Release -o publish
    scp -r publish/ youruser@yourserver:/var/www/csharp/
  2. Sunucuda çalıştır:

    cd /var/www/csharp/
    dotnet MyPortfolioProject.dll --urls "http://localhost:5050"
  3. Apache Reverse Proxy Ayarı (/etc/apache2/sites-available/yourproject.conf):

    <VirtualHost *:80>
        ServerName csharp.emirbaycan.com.tr
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =csharp.emirbaycan.com.tr
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    </VirtualHost>
    
    <IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName csharp.emirbaycan.com.tr
    
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/csharp.emirbaycan.com.tr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/csharp.emirbaycan.com.tr/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
    
        ProxyPreserveHost On
        ProxyPass / http://localhost:5050/
        ProxyPassReverse / http://localhost:5050/
    </VirtualHost>
    </IfModule>
  4. Apache yeniden yüklenir:

    sudo a2enmod proxy proxy_http rewrite ssl
    sudo a2ensite yourproject.conf
    sudo systemctl reload apache2

🔮 Test

Testler Tests/ klasöründe (varsa) bulunur. Çalıştırmak için:

dotnet test

📸 Ekran Görüntüleri

Ana sayfa genel görünüm:

Full Page Screenshot


📬 İletişim

Her türlü öneri veya iş birliği için:


📄 Lisans

Bu proje MIT Lisansı ile lisanslanmıştır.

About

Dinamik içerik yönetimi, MSSQL ve Docker destekli, modern ve ölçeklenebilir ASP.NET Core MVC portfolyo sitesi.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages