Pusula OBS - Öğrenci Bilgi Sistemi

Pusula OBS - Öğrenci Bilgi Sistemi

Full-Stack

React ve ASP.NET Core ile geliştirilmiş kapsamlı öğrenci otomasyon sistemi. JWT authentication, rol bazlı yetkilendirme, ders yönetimi, notlandırma ve yoklama takibi özellikleriyle modern bir OBS platformu

Kullanılan Teknolojiler

ReactASP.NET Core 8.0PostgreSQLEntity Framework CoreJWTTailwind CSSReact RouterAxiosRechartsBCryptDockerRender.com

1Genel Bakış

Pusula OBS (Öğrenci Bilgi Sistemi), akademik yönetimi kolaylaştırmak için geliştirilmiş kapsamlı bir öğrenci otomasyon platformudur. Proje Amacı: Üniversite/okul yönetiminin ihtiyaç duyduğu tüm temel öğrenci bilgi sistemi özelliklerini modern teknolojilerle sunmak. Teknik Stack: - Frontend: React 19.1.1 + Tailwind CSS - Backend: ASP.NET Core 8.0 - Database: PostgreSQL - Authentication: JWT - Deployment: Render.com (Docker) Kullanıcı Rolleri: 1. Admin: Tüm kullanıcıları yönetme, öğretmen ve öğrenci oluşturma, sistem genelinde raporlama 2. Öğretmen: Kendi derslerini yönetme, öğrencilere not verme, yoklama kaydetme, yorum ekleme 3. Öğrenci: Kendi notlarını görüntüleme, yoklama geçmişi, ders programı, yorumları okuma Proje, modern web development best practices ve secure authentication ile geliştirilmiştir.

2Authentication ve Yetkilendirme

JWT tabanlı authentication ve rol bazlı yetkilendirme sistemi: JWT Authentication: - Email + password ile giriş - BCrypt password hashing - JWT token generation - Bearer token ile API requests - Token expiration (24 saat) Role-Based Access Control (RBAC): Admin Yetkileri: ✓ Tüm kullanıcıları görüntüleme ve yönetme ✓ Öğretmen ve öğrenci oluşturma ✓ Sistem raporları Teacher Yetkileri: ✓ Kendi derslerini yönetme ✓ Not girişi ve yoklama kaydetme ✓ Öğrenci yorumları ekleme Student Yetkileri: ✓ Kendi notlarını ve yoklamalarını görme ✓ Ders programı ve yorumları okuma ASP.NET Core Authorization: [Authorize(Roles = "Admin")] [Authorize(Roles = "Teacher, Admin")] Frontend Route Protection: <ProtectedRoute requiredRole="Admin"> <AdminDashboard /> </ProtectedRoute>

3Ders ve Not Yönetimi

Kapsamlı ders yönetimi ve notlandırma sistemi: Ders Yönetimi: - Ders oluşturma (kod, ad, kredi, kontenjan) - Öğretmen ataması - Öğrenci kayıt (enrollment) - Kontenjan kontrolü - Ders listeleme ve filtreleme Notlandırma Sistemi: Not Bileşenleri: - Vize (%30) - Final (%40) - Ödev (%15) - Proje (%15) Harf Notu Dönüşümü: 90-100: AA, 85-89: BA, 80-84: BB, etc. Öğretmen: Not girişi, toplu güncelleme, sınıf ortalaması Öğrenci: Tüm notları görme, GPA hesaplama, trend grafikleri Entity Framework Navigation: public class Course { public Teacher Teacher { get; set; } public ICollection<Enrollment> Enrollments { get; set; } }

4Yoklama ve Yorum Sistemi

Yoklama Takibi: Yoklama Durumları: ✅ Present (Mevcut) ❌ Absent (Devamsız) 📝 Excused (Mazeret) ⏰ Late (Geç) Öğretmen: Yoklama kaydı, toplu işlemler, geçmiş düzenleme Öğrenci: Yoklama geçmişi, devam yüzdesi, uyarılar Yorum Sistemi: Öğretmen Yorumları: - Akademik, davranış veya genel kategoriler - Pozitif/Negatif etiketleme - Ders bazlı yorumlama Öğrenci: Tüm yorumları görüntüleme, filtreleme, istatistikler

5Modern UI/UX ve Deployment

Modern Arayüz: Tailwind CSS: - Utility-first styling - Dark/Light mode toggle - Responsive design (mobile-first) - Component library Data Visualization: Recharts ile dashboard grafikleri: - Enrollment trends (line chart) - Grade distribution (bar chart) - Attendance statistics (pie chart) Docker Deployment: Dockerfile (Backend): FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /app COPY publish . ENTRYPOINT ["dotnet", "PusulaObs.API.dll"] Render.com Services: - Backend: Docker web service - Frontend: Static site (npm build) - Database: PostgreSQL (Starter plan) CI/CD: GitHub Actions ile otomatik deployment Environment Variables: - DATABASE_URL - JWT_SECRET - ASPNETCORE_ENVIRONMENT

6Teknolojiler ve Kazanımlar

Full-Stack Development: ✓ React 19.1.1 + Tailwind CSS ✓ ASP.NET Core 8.0 Web API ✓ PostgreSQL + Entity Framework Core ✓ JWT authentication + RBAC ✓ Docker containerization ✓ Render.com deployment Backend: ✓ RESTful API design ✓ Entity Framework migrations ✓ Middleware pipeline ✓ Dependency Injection ✓ LINQ queries Frontend: ✓ React Router ✓ Axios HTTP client ✓ Context API ✓ Recharts visualization ✓ Responsive design DevOps: ✓ Docker multi-stage builds ✓ CI/CD pipeline ✓ Environment management ✓ Production optimization Bu proje, enterprise-level full-stack OBS development deneyimi sağlamıştır.

Özellikler

  • JWT token tabanlı authentication
  • Rol bazlı yetkilendirme (Admin, Teacher, Student)
  • Kullanıcı yönetimi (CRUD operations)
  • Ders yönetimi ve takibi
  • Notlandırma sistemi
  • Yoklama (attendance) takibi
  • Öğrenci yorumlama/feedback sistemi
  • Dark/Light mode desteği
  • Responsive modern UI
  • Dashboard ve raporlama (Recharts)
  • Docker containerization
  • PostgreSQL veritabanı
  • BCrypt password hashing

Görseller

Pusula OBS - Öğrenci Bilgi Sistemi screenshot 1
1 / 12