ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Bu doküman, kod bilmeseniz bile uygulamayı çalıştırıp yayına almanız için gereken her adımı anlatır. Hiçbir adımı atlamayın, sırayla ilerleyin. • Öğrenci girişi: Kendi deneme sonuçlarını, konu bazlı başarı grafiklerini görür ve çözemediği bir soruyu (metin veya fotoğraf olarak) size gönderir. • Öğretmen girişi: Tüm öğrencilerin listesini görür, herhangi birine tıklayıp detaylı analiz yapar, o öğrenciye yeni bir deneme sonucu ekler ve gelen soruları "İnceleniyor / Derste Çözülecek / Çözüldü" olarak etiketler.README 전문 보기 ↗
Bu doküman, kod bilmeseniz bile uygulamayı çalıştırıp yayına almanız için gereken her adımı anlatır. Hiçbir adımı atlamayın, sırayla ilerleyin.
Uygulamanın iki "kapısı" var:
Veriler bir bulut veritabanında (Supabase) saklanır, yani tarayıcıyı kapatsanız bile veriler kaybolmaz. Supabase; Google/Microsoft hesabınızla saniyeler içinde açabileceğiniz, kredi kartı istemeyen ücretsiz bir bulut veritabanı servisidir — bir nevi "hazır sunucu".
Rol nasıl belirleniyor? Kayıt olurken kişi "Öğrenci" ya da "Öğretmen"
seçer. Bu bilgi veritabanındaki profiles tablosunda saklanır ve uygulama
girişte kişiyi otomatik olarak doğru panele yönlendirir.
Her sayfanın sağ üstünde adınızın yazdığı bir düğme var. Buna tıklayınca açılan menüden Profilim sayfasına ulaşırsınız: ad soyad değiştirme, şifre değiştirme, bildirim ayarı ve çıkış. Profil, soldaki sekme listesinde yer almaz — günlük işle karışmaması için yalnızca buradadır.
Soldaki menüden (mobilde alttaki çubuk ve "Menü" çekmecesinden) ulaşılan sayfalar:
| Sekme | Rota | Kim görür | Ne işe yarar |
|---|---|---|---|
| Anasayfa | /anasayfa | Öğrenci | Girişte açılan sakin ekran: sınava kalan süre geri sayımı, AI Koç önerisi, bekleyen ödev/sorular, soru + çözüm akışı, hızlı işlemler ve özet sayılar — grafik yok |
| AI Soru Çöz | /soru-coz | Öğrenci | Sorunun fotoğrafını yükler, yapay zekâ dijital tahtada adım adım çözer; "neden?" / "burada takıldım" sorulabilir, öğrenci kendi çözümünü kontrol ettirebilir |
| Analiz | /analiz | Öğrenci | Çalışma süresi, LGS/YKS net gelişimi, ders bazlı ve konu bazlı başarı grafiklerinin tamamı |
| Profilim | /profil | Hepsi | Ad soyad, şifre, bildirim tercihi ve hesap özeti (sağ üstteki isim düğmesinden açılır) |
| Günlük Çalışma Takibi | /gunluk-takip | Öğrenci | Her gün çalışılan konu, süre, doğru/yanlış/boş sayısı girilir ve geçmiş listelenir |
| Ödevler | /odevler | İkisi de | Öğretmen ödev atar, öğrenci durumunu (Yapılıyor/Tamamlandı) günceller |
| LGS / YKS / KPSS Denemeleri | /denemeler | Öğrenci | Ders bazlı doğru/yanlış/net girişi ve net gelişim grafiği |
| Sorunlu Sorular | /sorular | İkisi de | Fotoğraflı soru gönderimi, öğretmenin yazılı/fotoğraflı yanıtı, görsel büyütme ve öğrenci arşivi |
| Ders Notları Kütüphanesi | /notlar | İkisi de | Sınav türü → ders → konu → not hiyerarşisinde düzenlenmiş kaynaklar; öğretmen yükler, öğrenci görüntüler |
| Mesajlar | /mesajlar | İkisi de | Öğrenci-öğretmen arası birebir, anlık mesajlaşma |
Öğretmen tarafında, bir öğrencinin profiline tıkladığınızda (öğretmen panelinden) o öğrencinin LGS/YKS denemelerini, ödevlerini, günlük çalışmalarını ve konu bazlı gelişim tablosunu da aynı sayfada görürsünüz.
İpucu — konu bazlı analiz için: Günlük Çalışma Takibi'nde "Konu" alanına
Ders - Konubiçiminde yazarsanız (örn.Matematik - Türev,Fizik - Vektörler), Analiz sayfasındaki "Konu Bazlı Gelişim" tablosu ve derslere göre soru dağılımı grafiği bu bilgiyi otomatik ayrıştırıp gösterir. Bu biçimde yazmasanız da form yine çalışır, sadece o kayıt "Genel" dersi altında görünür.
ogrenci-takip/
├─ src/
│ ├─ pages/ → Tam sayfalar (Giriş, Öğrenci Paneli, Öğretmen Paneli, Öğrenci Detayı)
│ ├─ components/ → Sayfalarda kullanılan küçük parçalar (grafik, form, kart, liste)
│ ├─ context/ → Kullanıcının "kim olduğu" ve "hangi rolde olduğu" bilgisini tüm
│ │ uygulamada hatırlayan mekanizma
│ └─ lib/supabaseClient.js → Uygulamanın veritabanına nasıl bağlanacağını söyleyen dosya
├─ supabase/schema.sql → Veritabanı tablolarını oluşturan hazır kod (aşağıda kullanacağız)
├─ .env.example → Kendi veritabanı bilgilerinizi gireceğiniz şablon dosya
└─ package.json → Uygulamanın hangi kütüphanelere ihtiyacı olduğunun listesi
Kısaca: pages = ekranlar, components = o ekranların içindeki
parçalar, supabase/schema.sql = veritabanınızın iskeletini kuran dosya.
Node.js, bu tarz uygulamaları çalıştırmak için gereken bir programdır.
ogrenci-takip), güçlü bir veritabanı şifresi
belirleyin (bir yere not edin) ve size en yakın bölgeyi (Region) seçin.supabase/schema.sql dosyasını açın, içindeki
tüm metni kopyalayıp buraya yapıştırın.Bu işlem; öğrenciler, deneme sonuçları ve sorular için gereken tabloları, ayrıca soru fotoğraflarının yükleneceği depolama alanını otomatik kurar.
Günlük çalışma takibi modülünü kullanacaksanız:
daily_logstablosunu zaten kendiniz oluşturduysanız,supabase/migration_daily_logs.sqldosyasının tamamını da aynı şekilde SQL Editor'e yapıştırıp çalıştırın. Bu dosya, tabloya güvenlik kurallarını (öğrenci sadece kendi kaydını görür/ekler, öğretmen tüm kayıtları görür) ekler.
Ödevler, LGS/YKS Denemeleri, Mesajlaşma ve Soru Yanıtlama modüllerini kullanacaksanız:
supabase/migration_v2.sqldosyasının tamamını da aynı şekilde SQL Editor'e yapıştırıp çalıştırın. Bu dosya:
homeworks(ödevler),mock_exams+mock_exam_subjects(LGS/YKS denemeleri) vemessages(mesajlaşma) tablolarını sıfırdan oluşturur,questionstablosuna öğretmenin yazılı yanıt yazabilmesi için tek birteacher_replykolonu ekler,- mesajların anlık gelebilmesi için Supabase Realtime'ı açar.
Mevcut
exams,daily_logsveprofilestablolarınıza hiçbir şekilde dokunulmaz — LGS/YKS denemeleri bilerek ayrı bir tabloda (mock_exams) tutulur, böylece "Yeni Deneme Sonucu Ekle" özelliğiniz eskisi gibi çalışmaya devam eder.
KPSS deneme türünü kullanacaksanız:
supabase/migration_kpss.sqldosyasını da aynı şekilde çalıştırın. Bu, deneme türü listesineKPSS'yi ekler; mevcut LGS/TYT/AYT denemeleriniz etkilenmez.
Öğretmenin fotoğraflı yanıt verebilmesi için:
supabase/migration_reply_image.sqldosyasını da çalıştırın. Bu,questionstablosuna tek bir kolon ekler — yeni bir Storage bucket açmanıza gerek yoktur, öğrenci sorularının fotoğrafları için zaten kurmuş olduğunuzquestion-imagesbucket'ı öğretmenin yanıt fotoğrafı için de otomatik olarak kullanılır.
Anasayfadaki sınav geri sayımını kullanacaksanız (ZORUNLU):
supabase/migration_student_exam_profile.sqldosyasını çalıştırın. Bu,profilestablosuna öğrencinin sınıfı, hedef sınavı ve sınav yılı için kolonlar ekler. Çalıştırmadan önce geri sayım hiç görünmez; öğrenci sınav bilgisini kaydetmeye çalışırsa uygulama hata vermek yerine bu dosyayı çalıştırmanız gerektiğini yazar.Çalıştırdıktan sonra:
- Yeni öğrenciler sınıf/sınav bilgisini kayıt formunda verir.
- Mevcut öğrenciler Anasayfa'da çıkan tek seferlik anket kartını doldurur. Öğretmen, Mesajlar sekmesindeki "Sınav bilgisi anketi" kutusundan bilgisi eksik olan tüm öğrencilere tek tıkla hatırlatma mesajı gönderebilir (mesaj gönderilmeden önce önizlenip düzenlenebilir).
- Sınav tarihi girilmezse uygulama son yılların takvimine göre tahmini bir tarih kullanır ve bunu geri sayımın altında açıkça belirtir. ÖSYM kesin tarihi açıkladığında öğrenci Profil sayfasından gerçek tarihi girer.
Veli panelini kullanacaksanız (ZORUNLU, sırayla 2 dosya):
supabase/migration_parent_verification.sqlsupabase/migration_parent_verification_cleanup.sqlİkincisi atlanamaz. Canlı veritabanında bu depodaki hiçbir dosyada bulunmayan, zamanla panelden elle eklenmiş politikalar vardı (örneğin
profilesüzerinde adı "Kullanıcılar kendi profillerini görebilir" olan ama koşulu düpedüztrueolan bir politika). PostgreSQL aynı komut için birden fazla permissive politikayı VEYA'lar — biri bile "true" derse satır görünür. Yani eskiler düşürülmeden yeni ve dar politikalar hiçbir işe yaramaz. Bu göç olmadan veli paneli boş görünür —parentrolüne hiçbir tabloda okuma izni yoktur, sorgular hata vermeden boş döner ve panel "doğru isim, sıfır metrik" tablosu çizer.Göç şunları yapar:
parent_linkstablosunu açar — veli–öğrenci ilişkisinin tek kaynağı. Mevcutprofiles.student_idbağları kaybolmadan 'active' olarak taşınır; hiçbir veli erişimini yitirmez.- Veliye, YALNIZCA öğrencinin onayladığı bağlar için okuma izni verir (
daily_logs,mock_exams,mock_exam_subjects,homeworks,exams). Mesajlar, sorunlu sorular ve AI Koç sohbeti veliye kapalıdır.profilespolitikalarını sıkılaştırır: tablo artık giriş yapmamış ziyaretçilere kapalıdır ve kullanıcı kendirole/student_idkolonunu değiştiremez.⚠ Göçten sonra kayıt ekranından öğretmen hesabı açılamaz (rol yükseltme açığıydı). Yeni öğretmen için:
update profiles set role = 'teacher' where id = '<uuid>';Uygulamadan önce göçü çalıştırın: göç eski arayüzle de uyumludur, ama yeni arayüz göç olmadan bağlantı kuramaz. Göçün doğruluğunu üretime dokunmadan sınamak için:
npm run test:parent-rls
Ders Notları Kütüphanesi'ni kullanacaksanız (sırayla 2 dosya):
supabase/migration_library.sql— 3 yeni tablo (library_subjects,library_topics,library_notes), gerekli izinler (RLS) ve dosya yüklemek için yeni bir Storage bucket (library-files, herkese açık okuma / sadece öğretmen yazma) oluşturur.supabase/seed_library_curriculum.sql— LGS, TYT, AYT ve KPSS için Matematik ve Geometri derslerinin güncel konu başlıklarını otomatik olarak ekler, böylece hiyerarşiyi elle girmenize gerek kalmaz. Bu dosyayı sadece bir kez çalıştırın — tekrar çalıştırırsanız konular mükerrer eklenir. Konu listesi yaygın kabul gören standart bir kırılımdır; kurumunuzun kaynağıyla tam örtüşmüyorsa öğretmen panelinden düzenleyebilir/silebilirsiniz.AI Soru Çözüm Merkezi'ni kullanacaksanız (
/soru-coz): Öncesupabase/migration_ai_solve.sql, ardındansupabase/migration_ai_solve_history.sqldosyasını çalıştırın. İlk dosya 2 yeni tablo ekler (ai_solution_sessions= çözülen her sorunun kaydı,ai_solution_events= "neden?" / "takıldım" etkileşimleri) ve ikisine de RLS kurar: bir öğrenci yalnızca kendi çözümlerini görür. İkinci dosya, geçmişteki soruları "tekrar çalış" olarak işaretlemek için iki alan ekler.Mevcut hiçbir tabloya dokunulmaz. Yeni Storage kovası da açılmaz — soru fotoğrafları zaten kurulu olan
question-imageskovasına,ai-solve/<kullanıcı-id>/klasörü altına yazılır. Hız sınırı sayacı için de yeni tablo yok; AI Koç'un kullandığıai_usage_eventstablosukind = 'solve'değeriyle paylaşılıyor.Göçü çalıştırmasanız uygulama çökmez ama soru çözümleri kaydedilemez; bu durumda "Neden?" ve çözüm geçmişi çalışmaz.
Ayrıca
GEMINI_API_KEYortam değişkeni zorunludur (aşağıdaki "AI Soru Çözüm Merkezi" bölümüne bakın). Anahtar tanımlı değilse sayfa açılır ama çözüm isteği "henüz yapılandırılmamış" mesajıyla döner.
Kurulumdan sonra öğretmen
/notlarsayfasında bir konuya girip "Bu Konuya Not Ekle" ile yazılı not ve/veya PDF/görsel yükleyebilir; öğrenci aynı sayfada sınav türü → ders → konu şeklinde gezinip notları görüntüleyebilir.
cmd yazıp Enter'a basmanız yeterli; Mac'te klasöre sağ tık →
"Yeni Terminal Sekmesi").npm install
.env.example dosyasının adını .env olarak değiştirin (kopyasını
oluşturup yeniden adlandırabilirsiniz). İçini açın ve Adım 4'te aldığınız
bilgilerle şu şekilde doldurun:
VITE_SUPABASE_URL=https://sizin-projeniz.supabase.co
VITE_SUPABASE_ANON_KEY=sizin-anon-anahtarınız
npm run dev
http://localhost:5173 adresini tarayıcınızda açın.
Uygulamanızı görüyor olmalısınız! 🎉Açılan sayfada **"Kayıt Ol"**a tıklayın, kendinizi "Öğretmen" olarak kaydedin.
Sonra bir öğrenci için tekrar kayıt olun (ya da öğrencilerinizden kendi kayıtlarını yapmalarını isteyin), rol olarak **"Öğrenci"**yi seçin.
Not: Supabase varsayılan olarak kayıt sırasında e-posta doğrulaması ister. Test aşamasında bunu kapatmak isterseniz: Supabase panelinde Authentication → Providers → Email bölümüne girip "Confirm email" seçeneğini kapatabilirsiniz.
Öğretmen hesabıyla giriş yapıp öğrencinizin profiline tıklayın ve "Yeni Deneme Sonucu Ekle" formuyla ilk konu/puan kayıtlarını girin. Bu kayıtlar öğrencinin panelindeki grafiklerde otomatik görünecektir.
Yayına almak, uygulamanızın herkesin erişebileceği bir internet adresine
(örneğin sinifim.vercel.app) taşınması demektir. Bunun için ücretsiz
Vercel servisini kullanacağız.
github.com adresinde ücretsiz bir hesap açın (yoksa).
Sağ üstteki "+" ikonuna basıp "New repository" seçin, bir isim
verin (örn. ogrenci-takip) ve **"Create repository"**ye basın.
Açılan sayfadaki talimatları takip ederek proje klasörünüzü GitHub'a yükleyin. En kolay yol: GitHub Desktop programını indirip kurmak, sonra "Add local repository" ile proje klasörünüzü seçip **"Publish repository"**ye basmak.
.envdosyanız.gitignoresayesinde otomatik olarak GitHub'a yüklenmez — bu, veritabanı şifrelerinizin güvende kalması içindir.
ogrenci-takip deposunu seçip "Import" deyin..env
dosyanızdaki iki satırı tek tek ekleyin:
VITE_SUPABASE_URL → kendi proje URL'nizVITE_SUPABASE_ANON_KEY → kendi anon anahtarınızhttps://ogrenci-takip-xxxx.vercel.app gibi bir
adres verecek — işte uygulamanız artık canlı ve herkes tarafından
(kendi kullanıcı adı/şifresiyle giriş yaparak) erişilebilir durumda!Bundan sonra projede bir değişiklik yapıp GitHub'a her yüklediğinizde, Vercel siteyi otomatik olarak güncelleyecektir.
Bu modül Google Gemini kullanır (AI Koç'tan bağımsızdır; o OpenAI kullanır, ikisi birbirini etkilemez).
Vercel'de Project Settings → Environment Variables altına ekleyin:
GEMINI_API_KEY = (aldığınız anahtar)
⚠️ Değişken adının başına
VITE_YAZMAYIN. Vite yalnızcaVITE_önekli değişkenleri tarayıcıya gömer; öneki eklerseniz anahtarınız siteyi açan herkes tarafından görülebilir hale gelir.
supabase/migration_ai_solve.sql ve ardından
supabase/migration_ai_solve_history.sql dosyasını SQL Editor'e yapıştırıp
çalıştırın (yukarıdaki nota bakın).
Kod içinde hiçbir yerde model adı yazılı değildir. Değiştirmek için yalnızca şu iki değişkeni güncellemeniz yeterli:
GEMINI_FAST_MODEL = gemini-3.6-flash (varsayılan)
GEMINI_PRO_MODEL = gemini-3.1-pro-preview (varsayılan)
Sistem her soruyu pahalı modele göndermez: önce ucuz modelle sorunun konusu ve zorluğu belirlenir, kolay sorular orada çözülür, zor sorular ve düşük güvenli cevaplar güçlü modele yükseltilir. Cevabı doğrulanamayan soruda sistem uydurmaz, "bu soruyu güvenilir şekilde çözemiyorum" der.
⚠️ Model kimlikleri zamanla değişir. Çözüm istekleri sürekli hata veriyorsa Google'ın güncel model listesinden kontrol edip yukarıdaki iki değişkeni güncelleyin.
Diğer tüm ayarlar (hız sınırı, zaman aşımı, fiyat, yönlendirme eşikleri)
.env.example dosyasında açıklandı; hiçbiri zorunlu değildir.
Her çözüm ai_solution_sessions tablosuna model, token sayısı, süre ve
tahmini maliyetle birlikte yazılır:
select
count(*) as soru,
round(sum(cost_usd), 4) as toplam_usd,
round(avg(cost_usd), 6) as soru_basi_usd,
count(*) filter (where model_role = 'pro') as pro_kullanimi
from ai_solution_sessions
where created_at > now() - interval '30 days';
⚠️
cost_usdtahmindir:api/_lib/solve/config.jsiçindeki birim fiyatlar doğrulanmamış varsayılanlardır. Gerçek fatura için Google'ın fiyat sayfasından doğrulayıpSOLVE_PRICE_*değişkenleriyle ezin.
npm run test:ai-solve
Ağ, veritabanı ve API anahtarı gerektirmez; tahta güvenlik doğrulayıcısını, matematiksel doğrulama motorunu ve model yönlendirme kurallarını sınar.
Kütüphanedeki PDF/metin notlarının yanında, öğretmen kalitesinde yapılandırılmış dersler bulunur. Bunlar "not" değil, öğrencinin tek başına konuyu öğrenebileceği ders materyalidir.
| Yol | İş |
|---|---|
src/lib/lesson/schema.js | Ders belgesinin tek tanımı: blok tipleri, doğrulama, derinlik denetimi, editör alanları |
src/components/lessons/reader/ | Sunum katmanı — her blok tipinin kendi görsel çözümü |
src/components/lessons/figures/ | Bilimsel şemalar (gerçek SVG, tema uyumlu, bölge vurgulu) |
src/components/lessons/editor/ | Öğretmen editörünün alan bileşenleri |
src/lib/lesson/personalize.js | Kişiselleştirme katmanı (model çağrısı yok, kural tabanlı) |
src/content/lessons/ | Gold standard referans dersleri |
type: 'trap', type: 'why'…). Rengi, kutusu, yerleşimi
src/components/lessons/reader/LessonBlock.jsx seçer. AI da bu yüzden
"şunu mor kart yap" diyemez.auditLessonDepth() her kaydetmede
çalışır ve ders yüzeyselse öğretmene uyarı verir (kelime sayısı, eksik
pedagojik katman, ön koşul/kazanım eksikliği). Yayını engellemez; karar
öğretmenindir.Giriş yapmadan /ders-notu-onizleme adresi açılır. Gerçek gold standard
dersi ve altında içerik denetimi künyesi görünür.
node scripts/test-lesson-document.mjs # şema + derinlik denetimi testleri
node scripts/seed-showcase-lesson.mjs # gold standard dersi veritabanına yazar
Ses sağlayıcısı TTS_PROVIDER=none olduğu sürece ders normal çalışır;
"Hocayla Çalış" ve "Görseli Hocayla İncele" öğretmen anlatımını metin
olarak gösterir. Sağlayıcı bağlandığında aynı metin seslendirilir ve
lesson_audio_assets üzerinden cache'lenir — aynı ses ikinci kez üretilmez.
"npm install" hata verdi, ne yapmalıyım?
Node.js'in doğru kurulduğundan emin olun (terminale node -v yazıp Enter'a
basınca bir sürüm numarası görmelisiniz). Görmüyorsanız Adım 1'i tekrarlayın.
Grafikler boş görünüyor. Henüz o öğrenciye ait deneme sonucu girilmemiş demektir. Öğretmen panelinden öğrencinin profiline girip "Yeni Deneme Sonucu Ekle" formunu kullanın.
Fotoğraf yükleme çalışmıyor.
supabase/schema.sql dosyasını SQL Editor'de tam olarak çalıştırdığınızdan
emin olun — depolama alanı (bucket) bu adımda oluşturuluyor.
Daha fazla konu/ders eklemek istiyorum. "Yeni Deneme Sonucu Ekle" formundaki konu kutusuna dilediğiniz konuyu serbestçe yazabilirsiniz; listedeki öneriler sadece kolaylık içindir.
Branş Denemesi Ekle / net grafiği çalışmıyor.
supabase/migration_branch_exam_upgrade.sql dosyasını çalıştırmanız
gerekiyor — bu, exams tablosuna tarih/doğru/yanlış/boş/net kolonlarını
ekler ve öğrencinin kendi branş denemesini girebilmesine izin verir.
AI Soru Çöz "henüz yapılandırılmamış" diyor.
GEMINI_API_KEY ortam değişkeni tanımlı değil ya da geçersiz. Vercel'de
Project Settings → Environment Variables altına ekleyip projeyi
yeniden yayınlayın (Redeploy). Değişken eklemek tek başına yetmez,
yeniden yayınlamak gerekir.
AI Soru Çöz "çözüm kaydedilemedi" diyor / geçmiş boş görünüyor.
supabase/migration_ai_solve.sql çalıştırılmamış demektir.
Çözüm çıkmıyor, "soruyu net okuyamadım" diyor. Bu bir hata değil, bilinçli bir davranış: sistem okuyamadığı soruda çözüm uydurmaz. Fotoğrafı düz açıyla, aydınlık ortamda ve sorunun tamamı (şıklar dahil) kadraja girecek şekilde çekin. Tek karede birden fazla soru varsa yalnızca çözdürmek istediğinizi kırpın.
Öğretmen veya öğrenci bildirimleri gelmiyor.
Yeni çift yönlü bildirim merkezi ve tablet kurulumu için
docs/ogretmen-bildirimleri.md belgesindeki
adımları izleyin. Eski migration_push_notifications.sql dosyasındaki doğrudan
mesaj/soru tetikleyicileri artık kullanılmaz; yeni göç bunları yinelenen ve
yetkisiz bildirim oluşturmamaları için kaldırır.