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.
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)
Bu projeyi kendi makinenizde çalıştırmak için aşağıdaki adımları izleyebilirsiniz.
-
Projeyi klonlayın:
git clone https://github.com/kullanici-adiniz/depo-adiniz.git cd depo-adiniz -
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.APIklasö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 ..
-
Docker Ortam Değişkenlerini Ayarlayın: Projenin ana dizininde
.envadı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İ:
.envdosyası.gitignoretarafından takip edilmediği için güvenlidir. -
Frontend Bağımlılıklarını Yükleyin:
cd personel-yonetimi-frontend npm install -
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--buildparametresi, imajların yeniden oluşturulmasını sağlar. -
Frontend Uygulamasını Başlatın:
personel-yonetimi-frontenddizininde aşağıdaki komutu çalıştırın:npm start
Uygulama artık
http://localhost:3000adresinde çalışıyor olmalı.
- API Swagger:
http://localhost:8080/swagger - Kibana (Loglar):
http://localhost:5601 - Prometheus:
http://localhost:9090 - Grafana:
http://localhost:3003(kullanıcı/şifre: admin/admin)