Skip to content

Repository files navigation

Personel Yönetim Sistemi

Bu proje .NET 8, React, PostgreSQL ve Docker teknolojileri kullanılarak geliştirilmiş modern bir full-stack personel yönetim sistemidir. Sistemde ayrıca performans takibi, monitoring ve loglama için Prometheus, Grafana, Elasticsearch gibi araçlar da entegre edilmiştir.

Kullanılan Teknolojiler

Backend:

  • .NET 8 Web API
  • Entity Framework Core
  • PostgreSQL
  • AutoMapper, FluentValidation
  • JWT (JSON Web Token) ile Kimlik Doğrulama (Authentication)
  • Serilog ile Yapısal Loglama

Frontend:

  • React (TypeScript)
  • Ant Design (UI Kütüphanesi)
  • Axios
  • React Router

Veritabanı & Cache:

  • PostgreSQL
  • Redis (Distributed Caching)

DevOps & Gözlemlenebilirlik:

  • Docker & Docker Compose
  • Elasticsearch (Loglama için)
  • Kibana (Logları görselleştirmek için)
  • Prometheus (Metrik toplama)
  • Grafana (Metrikleri görselleştirme)

Projeyi Yerel Makinede Çalıştırma

Bu projeyi kendi makinenizde çalıştırmak için aşağıdaki adımları izleyebilirsiniz.

Gereksinimler

Kurulum Adımları

  1. Projeyi klonlayın:

    git clone https://github.com/kullanici-adiniz/depo-adiniz.git
    cd depo-adiniz
  2. Backend Gizli Bilgilerini Ayarlayın: Backend'in çalışması için veritabanı bağlantısı ve JWT anahtarı gibi gizli bilgilere ihtiyacı var. Bu bilgileri User Secrets ile ayarlamanız gerekmektedir. PersonelYonetimi.API klasörüne gidin ve aşağıdaki komutları kendi bilgilerinizle çalıştırın:

    cd PersonelYonetimi.API
    
    dotnet user-secrets init
    dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Port=5433;Database=PersonelYonetimiDb;Username=postgres;Password=YOUR_SECURE_PASSWORD"
    dotnet user-secrets set "Jwt:Key" "YOUR_SUPER_SECRET_AND_LONG_JWT_KEY"
    # Mailtrap veya kendi SMTP bilgileriniz
    dotnet user-secrets set "MailSettings:Username" "YOUR_MAILTRAP_USERNAME"
    dotnet user-secrets set "MailSettings:Password" "YOUR_MAILTRAP_PASSWORD"
    
    cd ..
  3. Docker Ortam Değişkenlerini Ayarlayın: Projenin ana dizininde .env adında bir dosya oluşturun ve içine veritabanı şifrenizi ekleyin:

    # .env dosyası
    POSTGRES_PASSWORD=YOUR_SECURE_PASSWORD
    POSTGRES_USER=postgres
    POSTGRES_DB=PersonelYonetimiDb

    ÖNEMLİ: .env dosyası .gitignore tarafından takip edilmediği için güvenlidir.

  4. Frontend Bağımlılıklarını Yükleyin:

    cd personel-yonetimi-frontend
    npm install
  5. Tüm Sistemi Docker Compose ile Başlatın: Projenin ana dizinine geri dönün ve aşağıdaki komutu çalıştırın. Bu komut, veritabanı, Redis, API ve diğer tüm servisleri Docker container'ları içinde başlatacaktır.

    cd ..
    docker-compose up -d --build

    --build parametresi, imajların yeniden oluşturulmasını sağlar.

  6. Frontend Uygulamasını Başlatın: personel-yonetimi-frontend dizininde aşağıdaki komutu çalıştırın:

    npm start

    Uygulama artık http://localhost:3000 adresinde çalışıyor olmalı.

Servislere Erişim

  • API Swagger: http://localhost:8080/swagger
  • Kibana (Loglar): http://localhost:5601
  • Prometheus: http://localhost:9090
  • Grafana: http://localhost:3003 (kullanıcı/şifre: admin/admin)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages