ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
ÖDHM ders programı hazırlayıcısı ve öğrenci ziyaret kaydı.
Translation pending
EducationHTML · JavaScriptGitHub @ydamgaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗GitHub Pages'te yayınlanan statik site (HTML, CSS, vanilla JavaScript; derleme adımı yok).
| Sayfa | İçerik |
|---|---|
index.html | Üniversite sistemleri, araçlar, günün menüsü, ÖSYM takvimi, alt bilgide ekip kedisi |
kedi-odasi.html | Ekip kedisinin odası: göstergeler, bakım, geçmiş, ad seçimi, ekip ve özlem |
ders-programi.html, ziyaret.html, yemek.html, sinavlar.html | Mevcut araçlar |
Ortak görünüm ortak.css, tema ve ayarlar paneli ayarlar.js, ÖSYM bildirimleri worker/ ve .github/workflows/osym.yml.
Anasayfanın alt bilgisinde, yalnızca kendisine ayrılmış bir şeritte dolaşan ortak bir kedi (Fındık). Kediye ya da Araçlar → Kedi Odası'na basınca odası açılır; orada beslenir, oynatılır, dinlendirilir ve temizlenir.
| Dosya | Görevi |
|---|---|
kedi/ayar.js | Oyun ayarları (oranlar, eşikler, sıklık sınırı), kedinin adı ve özlem süresi (ozlemGun). Tek yapılandırma yeri |
kedi/baglanti.js | Supabase adresi ve herkese açık anahtar. Boşsa yerel deneme modu |
kedi/baglanti.ornek.js | Doldurulmuş örnek (sayfalarda yüklenmez) |
kedi/kurallar.js | Geçen süreye göre ihtiyaç hesabı, eylemler, ruh hâli, özlenenler. DOM'suz; Node'da test edilir |
kedi/durum.js | Durumun kaynağı: yerel deneme (localStorage) ya da Supabase (RPC + Realtime) |
kedi/karakter.js | SVG kedi ve davranış seçimi (yürüme, bakınma, esneme, yalanma, uyuma) |
kedi/kedi.css | Pozlar ve animasyonlar |
kedi/ana.js, kedi/oda.js | Anasayfa şeridi ve Kedi Odası arayüzü |
kedi/bildirim.js | Anlık duyurular (başkası bakım yapınca/sevince), sekme başlığı uyarısı, masaüstü bildirimi |
kedi/sahne.js | Odanın gökyüzü (günün saati), süsleri (tatil, yılbaşı, mevsim) ve kazanılan eşyaları |
kedi/lazer.js | Lazer mini oyunu |
kedi/avatar.js, kedi/avatar.png | Odadaki piksel avatar ve kareleri (dur, iki yürüme, çömelip sevme, el sallama; 73×110) |
supabase/schema.sql | Tablolar, kısıtlar, indeksler, fonksiyonlar, RLS, Realtime |
supabase/test-rls.sql | Yetki ve fonksiyon sınaması (geri alınan tek işlem) |
supabase/guncelleme-etkilesim.sql | Kurulu şemaya oyuncakları, ödül mamasını, haftalık hedefi ve görünüş oylarını ekler |
supabase/guncelleme-uyandir.sql | Kurulu isimli şemaya 2 saatlik bakım oranlarını ve uyandırmayı ekler (tekrar çalıştırılabilir) |
supabase/eski-semayi-kaldir.sql | Eski e-postayla girişli şemayı kaldırır (yalnızca o kuruluysa) |
test/kedi-kurallar.test.js | Oyun kuralları birim testleri |
Bütün yollar görelidir (kedi/..., kedi-odasi.html); site bir depo alt dizininde (kullanici.github.io/depo/) yayınlansa da çalışır.
updated_at + resting_until).
Şimdiki değerler her okumada geçen süreden hesaplanır; sayfa kapalıyken de ihtiyaçlar ilerler. Sunucuya
periyodik istek gitmez; sayfa yalnızca açılışta, sekmeye dönüldüğünde ve bağlantı geri geldiğinde durumu okur,
değişiklikleri Realtime ile alır.rest_max_hours saat uyutur; bu sürede enerji
saatte energy_rest_per_hour artar, enerji 100 olunca kedi erken uyanır. Kedi uyurken "Dinlendir" düğmesi
Uyandır olur: uyandırılan kedi o ana kadar kazandığı enerjiyi korur. Uyurken oyun reddedilir; besleme ve
temizleme uykuyu bozmaz.transform/opacity animasyonları; yürüme tek bir CSS geçişi, sürekli JavaScript
döngüsü yok, sekme gizliyken davranış seçimi durur. Değerler 30–60 saniyede bir yeniden hesaplanır.prefers-reduced-motion) açıksa kedi yerinde durur, animasyonlar kapanır; pozu ve
balonu yine durumunu gösterir.favorite_toy_bonus kadar ek mutluluk ve "bayıldı" tepkisi gelir.max_game_bonus, sunucu da sınırlar).treat_hunger azalır, mutluluk treat_happiness artar.weekly_goal (60) bakım. Hedefin tuttuğu her hafta odaya sırayla bir eşya gelir:
kedi ağacı, saksı çiçeği, balık tablosu, halı, lamba, yumak sepeti. Kartta en çok bakanlar ve en çok oynanan oyuncak.| Yerel deneme | Ortak canlı | |
|---|---|---|
| Ne zaman | kedi/baglanti.js boş | kedi/baglanti.js dolu |
| Durum | Bu tarayıcının localStorage'ı | Supabase PostgreSQL |
| Kim bakım yapar | Bu tarayıcıyı kullanan | Ekip listesinden adını seçen herkes (giriş yok) |
| Eşitleme | Yok (yalnızca aynı tarayıcının sekmeleri) | Realtime ile bütün açık sayfalar |
| Arayüzde | "Yerel deneme" rozeti ve uyarı notu | "Ortak · canlı" rozeti |
Canlı modda bağlantı kurulamazsa sayfa yerel moda düşmez: hata gösterir, bakım düğmelerini kapatır, hiçbir şeyi yerelde kaydetmez.
Aşağıdaki adımları sizin yapmanız gerekir; bu depoda gerçek bir Supabase projesi yok.
supabase/schema.sql dosyasının tamamını yapıştırıp Run
(eski girişli şema kuruluysa önce 4. adıma bakın). Şema daha önce kurulduysa onun yerine sırayla
guncelleme-uyandir.sql ve guncelleme-etkilesim.sql'i çalıştırın.supabase/test-rls.sql'i çalıştırın. Çıktıda (Messages/Notices) yalnızca OK ... satırları ve
sonda Bütün denetimler geçti görünmeli. HATA: ... görürseniz canlıya geçmeyin.
Betik tek işlemde çalışır ve sonunda geri alınır; test kullanıcıları kalmaz.Giriş ya da kayıt yoktur; Supabase Authentication ayarlarına dokunmanız gerekmez. Kedi Odası'nı açan kişi Kediye kim bakıyor? kutusundan adını seçer ya da listede yoksa yazıp ekler. Seçim o tarayıcıda hatırlanır; her bakım bu adla geçmişe yazılır ve geçmişi herkes görür.
kedi/ayar.js → ozlemGun (varsayılan 3) gündür bakım yapmayan kişiyi kedi özler. Odada
"Fındık özledi: …" satırı ve Ekip listesinde etiket görünür; o kişi sayfayı açınca kedi onu karşılar, bakım
yapınca da özel bir tepki verir. Hiç bakım yapmamış kişi için süre listeye eklendiği andan sayılır.schema.sql sonundaki örnekler).Önceki sürümün e-postayla girişli şeması kuruluysa, schema.sql'den önce supabase/eski-semayi-kaldir.sql'i
çalıştırın. Kedinin değerleri ve geçmişi sıfırlanır. Authentication'daki eski kullanıcılar artık kullanılmaz;
isterseniz panelden silebilirsiniz. Allow new users to sign up ayarının bir önemi kalmaz.
Project Settings → API Keys: anon public (ya da publishable) anahtarını ve proje adresini alın.
kedi/baglanti.js'i doldurun (biçim için kedi/baglanti.ornek.js):
window.KEDI_BAGLANTI = { url: 'https://<proje>.supabase.co', anahtar: '<anon/publishable anahtar>' };
Commit edip main'e gönderin; GitHub Pages birkaç dakika içinde yayınlar (tarayıcılar dosyaları ~10 dakika
önbellekte tutabilir).
service_role / secret anahtarı (
"role":"service_role"içeren JWT ya dasb_secret_ile başlayan anahtar) RLS'yi atlar. Bu anahtarkedi/baglanti.js'e, depoya,.envdosyalarına ya da herhangi bir sayfaya girmemelidir. Herkese açık anahtarın görünmesi sorun değildir; verileri RLS ve fonksiyon yetkileri korur.
Canlı modda kurallar public.game_rules tablosundan gelir ve sunucuda uygulanır; yerel deneme kedi/ayar.js'i
kullanır. İkisini aynı tutun:
update public.game_rules set hunger_rise_per_hour = 6, updated_at = now() where id = 1;
Yeni oran son bakımdan bu yana geçen sürenin tamamına uygulanır; eski oranla geçen süreyi korumak için
değiştirmeden hemen önce bir bakım yapın. Hesabın kendisi kedi/kurallar.js ve private.pet_current() /
public.perform_pet_action() içinde aynıdır; birini değiştirirseniz ötekini de değiştirin ve testleri çalıştırın.
pets.id birincil anahtar ve check (id = 1); satır şemayla oluşur, istemci ekleyemez/silemez.anon ve authenticated rollerinin tablo yetkileri geri alınmış, yalnızca
okuma verilmiştir. Yazma iki fonksiyonla yapılır: add_team_member(ad) ve perform_pet_action(eylem, üye_id).
Tarayıcı değer göndermez; kedinin değerlerini ve zamanı sunucu belirler (clock_timestamp()), geçmişteki adı
ekip listesinden sunucu kopyalar.SELECT ... FOR UPDATE ile kilitler, durumu kilit
alındıktan sonraki sunucu saatine göre hesaplar, günceller ve geçmişi aynı işlemde yazar. Aynı anda gelen iki
bakım sıraya girer; ikincisi birincinin sonucunu görür, veri ezilmez.cooldown_seconds (3 sn) bekleme ve saatte max_actions_per_hour (60) bakım;
herkes toplamında dakikada max_actions_per_minute_total (30) bakım. Ekip listesi en çok 40 ad; saatte en çok
10 yeni ad. Bakım denetimleri satır kilidinin arkasında olduğundan paralel isteklerle aşılamaz..gitignore .env dosyalarını dışarıda tutar.node --test test/kedi-kurallar.test.js
Oyun kurallarını sınar: geçen süre, 0–100 sınırları, dört eylem, reddetme koşulları, süreli dinlenme ve erken uyanma, ihmalde ceza olmaması, göstergeler.
Yetkiler ve fonksiyonlar için supabase/test-rls.sql (yukarıda 2. adım).
pet_actions'ta iki satır olmalı ve
kedinin değerleri iki eylemin toplam etkisini göstermeli.supabase.createClient(url, anahtar).from('pets').update({ hunger: 0 }).eq('id', 1) hata vermeli.kedi/avatar.png