Modern, açık kaynaklı sınav ve soru bankası yönetim sistemi
Özellikler »
·
Mimari »
·
Kurulum »
·
Katkıda Bulunma »
👨🏫 Eğitmen Paneli
Knowhy Sınav Atölyesi, eğitim kurumları için tasarlanmış kapsamlı bir sınav ve soru bankası yönetim sistemidir. Öğretmenler soru bankası oluşturabilir, çeşitli soru tiplerinde sınavlar düzenleyebilir; öğrenciler sınavlara katılıp detaylı sonuçlarını görüntüleyebilir.
- Çoklu Soru Tipleri: Çoktan seçmeli, doğru/yanlış, kısa cevap, eşleştirme
- Akıllı Sınav Oluşturma: AI destekli otomatik soru üretimi (opsiyonel)
- Detaylı Analitik: Öğrenci performans takibi, konu bazlı analiz
- Rol Tabanlı Erişim: Admin, eğitmen ve öğrenci rolleri
- Modern UI: Minimalist, beyaz tonlu tasarım sistemi
- Responsive: Mobil uyumlu arayüz
┌─────────────────────────────────────────────────────────────────────────────┐
│ KNOWHY SINAV ATÖLYESİ │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ ADMIN │ │ EĞİTMEN │ │ ÖĞRENCİ │ │
│ │ Dashboard │ │ Dashboard │ │ Dashboard │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └───────────────────┼───────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ FRONTEND (React + TypeScript) │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────────┐ │ │
│ │ │ Pages │ │ Components │ │ Services │ │ State (Zustand)│ │ │
│ │ └────────────┘ └────────────┘ └────────────┘ └────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ │ REST API │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ BACKEND (Node.js + Express) │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────────┐ │ │
│ │ │ Routes │ │ Middleware │ │ Auth │ │ Validators │ │ │
│ │ │ /exams │ │ (JWT) │ │ (Bcrypt) │ │ (Zod) │ │ │
│ │ │ /users │ └────────────┘ └────────────┘ └────────────────┘ │ │
│ │ │ /analytics│ │ │
│ │ │ /ai │──────────────────────────────────────┐ │ │
│ │ └────────────┘ │ │ │
│ └──────────────────────────────────────────────────────│───────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────────┐ ┌────────────────────────────┐ │
│ │ DATABASE (Prisma ORM) │ │ AI SERVICE (Optional) │ │
│ │ ┌────────────────────────────────┐ │ │ ┌──────────────────────┐ │ │
│ │ │ SQLite (Dev) / PostgreSQL │ │ │ │ Make.com Webhook │ │ │
│ │ │ ───────────────────────── │ │ │ │ + │ │ │
│ │ │ users, exams, questions, │ │ │ │ Google Gemini AI │ │ │
│ │ │ attempts, answers, tags... │ │ │ └──────────────────────┘ │ │
│ │ └────────────────────────────────┘ │ └────────────────────────────┘ │
│ └──────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ SINAV OLUŞTURMA AKIŞI │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ Eğitmen │───▶│ Soru Bankası│───▶│ Sınav │───▶│ Öğrenci Ataması │ │
│ └─────────┘ │ Oluşturma │ │ Oluşturma │ └─────────────────┘ │
│ └─────────────┘ └─────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────┐ │
│ │ SORU TİPLERİ │ │
│ │ ┌─────────┐ ┌─────────┐ │ │
│ │ │ MCQ │ │ T/F │ │ │
│ │ │ Single │ │ Doğru/ │ │ │
│ │ │ Multi │ │ Yanlış │ │ │
│ │ └─────────┘ └─────────┘ │ │
│ │ ┌─────────┐ ┌─────────┐ │ │
│ │ │ Short │ │ Matching│ │ │
│ │ │ Answer │ │ Eşleşt. │ │ │
│ │ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ SINAV ALMA AKIŞI │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ Öğrenci │───▶│ Sınav │───▶│ Cevaplama │───▶│ Otomatik │ │
│ │ │ │ Başlatma │ │ (Zamanlı) │ │ Değerlendirme │ │
│ └─────────┘ └─────────────┘ └─────────────┘ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ SONUÇLAR │ │
│ │ • Puan hesaplama │ │
│ │ • Doğru/yanlış analizi │ │
│ │ • Konu bazlı performans │ │
│ │ • Zaman analizi │ │
│ └─────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ AI SINAV OLUŞTURMA AKIŞI │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ Eğitmen │────────▶│ Backend │────────▶│ Make.com Webhook │ │
│ │ İstek │ │ /ai/exams │ │ │ │
│ └─────────┘ └─────────────┘ └───────────┬─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Google Gemini AI │ │
│ │ (Soru Üretimi) │ │
│ └───────────┬─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ Önizleme│◀────────│ Backend │◀────────│ Callback Response │ │
│ │ & Kaydet│ │ /callback │ │ (JSON Sorular) │ │
│ └─────────┘ └─────────────┘ └─────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
- Kapsamlı soru bankası yönetimi
- Esnek sınav oluşturma ve düzenleme
- Sürükle-bırak soru sıralama
- Öğrenci performans analizi
- Soru etiketleme ve kategorileme
- Sınıf yönetimi
- AI destekli otomatik sınav oluşturma
- Mevcut sınavları görüntüleme
- Zamanlayıcılı sınav alma arayüzü
- Detaylı sonuç ve geri bildirim görüntüleme
- Kişisel performans takibi
- Konu bazlı analiz
- Kullanıcı yönetimi
- Sistem geneli analytics
- Sağlık durumu izleme
- Rol tabanlı erişim kontrolü
- Eğitmen performans takibi
| Katman | Teknolojiler |
|---|---|
| Backend | Node.js, Express, TypeScript, Prisma ORM |
| Database | SQLite (geliştirme), PostgreSQL (prodüksiyon) |
| Frontend | React 18, TypeScript, Vite, TanStack Query |
| UI | Tailwind CSS, shadcn/ui, Lucide Icons |
| State | Zustand |
| Container | Docker, Docker Compose |
| AI | Make.com + Google Gemini (opsiyonel) |
- Node.js 18+
- npm veya yarn
- Docker (opsiyonel, prodüksiyon için)
- Projeyi klonlayın
git clone https://github.com/knowhycodata/knowhy-sinav-atolyesi.git
cd knowhy-sinav-atolyesi- Backend kurulumu
cd backend
npm install
cp .env.example .env
# .env dosyasını düzenleyin (JWT_SECRET'ı değiştirin!)
npx prisma migrate dev
npx prisma generate
npm run seed # Demo veriler için
npm run dev- Frontend kurulumu (yeni terminal)
cd frontend
npm install
npm run dev- Uygulamaya erişim
- Frontend: http://localhost:5173
- Backend API: http://localhost:4000
Seed çalıştırıldıktan sonra:
| Rol | E-posta | Şifre |
|---|---|---|
| Admin | admin@example.com | (.env dosyasında belirtilen) |
| Eğitmen | instructor@example.com | Test123! |
| Öğrenci | student@example.com | Test123! |
# Environment dosyasını hazırlayın
cp backend/.env.example .env
# .env dosyasında prodüksiyon değerlerini ayarlayın
# Docker Compose ile çalıştırın
docker-compose up -d
# Veritabanını başlatın
docker-compose exec backend npx prisma migrate deploy
docker-compose exec backend npm run seedbackend/.env.example dosyasını referans alın:
# Server
PORT=4000
NODE_ENV=development
# Auth - Prodüksiyonda mutlaka değiştirin!
JWT_SECRET=your-secure-random-secret-min-32-chars
# Database
DATABASE_URL="file:./prisma/dev.db"
# AI Integration (Opsiyonel)
MAKE_WEBHOOK_URL=your-webhook-urlknowhy-sinav-atolyesi/
├── backend/ # Node.js API server
│ ├── src/
│ │ ├── routes/ # API endpoints
│ │ │ ├── auth.ts # Kimlik doğrulama
│ │ │ ├── users.ts # Kullanıcı yönetimi
│ │ │ ├── exams.ts # Sınav işlemleri
│ │ │ ├── questions.ts # Soru bankası
│ │ │ ├── analytics.ts # Analitik raporlar
│ │ │ ├── ai.ts # AI sınav oluşturma
│ │ │ └── ai-analytics.ts # AI performans analizi
│ │ ├── middleware/ # Express middleware
│ │ │ └── auth.ts # JWT doğrulama
│ │ └── server/ # Server konfigürasyonu
│ ├── prisma/
│ │ ├── schema.prisma # Veritabanı şeması
│ │ └── migrations/ # Migration dosyaları
│ └── Dockerfile
├── frontend/ # React uygulaması
│ ├── src/
│ │ ├── pages/ # Sayfa bileşenleri
│ │ │ ├── admin/ # Admin sayfaları
│ │ │ ├── instructor/ # Eğitmen sayfaları
│ │ │ └── student/ # Öğrenci sayfaları
│ │ ├── components/ # Yeniden kullanılabilir UI
│ │ │ └── ui/ # shadcn/ui bileşenleri
│ │ ├── services/ # API servisleri
│ │ └── stores/ # Zustand state yönetimi
│ └── Dockerfile
├── makecom_sablonlari/ # Make.com AI şablonları
│ ├── README.md # Kurulum kılavuzu
│ └── *.json # Blueprint dosyaları
├── docker-compose.yml # Prodüksiyon deployment
├── CONTRIBUTING.md # Katkıda bulunma rehberi
├── LICENSE # Apache 2.0 lisansı
└── README.md
- JWT token tabanlı kimlik doğrulama
- Bcrypt ile şifre hashleme
- Rol tabanlı erişim kontrolü (RBAC)
- CORS koruması
- SQL injection koruması (Prisma ORM)
- Rate limiting
Katkılarınızı memnuniyetle karşılıyoruz! Lütfen CONTRIBUTING.md dosyasını okuyun.
- Projeyi fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'feat: Add amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
AI destekli sınav oluşturma özelliğini kullanmak için:
- Make.com hesabı oluşturun
makecom_sablonlari/klasöründeki şablonları import edin- Google Gemini API bağlantısı kurun
- Webhook URL'lerini
.envdosyasına ekleyin
Detaylı kurulum için: makecom_sablonlari/README.md
Bu proje Apache License 2.0 altında lisanslanmıştır.
- Sorunlar için GitHub Issues kullanın
- Tartışmalar için GitHub Discussions kullanın
Knowhy
"Bütün Ümidim Gençliktetir" - M.Kemal Atatürk
Made with ❤️ in Turkey










