尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Ota-onalar va maktablar uchun xavf xaritasi: xavf qo'shish, "+1 Men ham ko'rdim", xavfsiz yo'nalish, 500 m radar, favqulodda raqamlar, moderator paneli va Telegram xabarnomalari. UZ / RU / EN, dark/light.
npm install
cp .env.example .env.local # MONGODB_URI ni to'ldiring (oxirida /safeway)
npm run seed # demo foydalanuvchilar + Toshkent bo'ylab 14 ta demo xavf
npm run dev # http://localhost:3000
npm run seed -- --reset — xavflar, rasmlar va Telegram jurnalini tozalab, demo ma'lumotlarni qayta yozadi.
Demo hisoblar (login sahifasida faqat DEMO_MODE=true bo'lsa ko'rinadi):
| Rol | Parol | |
|---|---|---|
| Parent | [email protected] | parent123 |
| School Admin | [email protected] | school123 |
| Super Admin | [email protected] | admin123 |
app/
page.tsx, landing.tsx Bosh sahifa (hero, statistika, so'nggi xabarlar)
map/ Xarita + filtrlar + "Atrofimdagi xavflar" (500 m, GPS kuzatuvi)
hazards/[id]/ Xavf sahifasi: holat kuzatuvi (Mavjud → O'rganilmoqda → Bartaraf etildi)
route/ Xavfsiz yo'nalish (Uy → Maktab)
login/ Kirish / Ro'yxatdan o'tish
admin/ Moderator paneli: KPI, grafiklar, jadval, Telegram log
api/
auth/{login,signup,logout,me}
hazards/ GET (filtr: category, status, lat/lng/radius), POST (6 ta / 10 daqiqa)
hazards/[id] GET; PATCH (status/severity/category), DELETE — faqat admin (aks holda 403)
hazards/[id]/confirm POST — "+1", har foydalanuvchi bir marta (takror → 409)
upload, uploads/[id] Rasm MongoDB'da (klientda ≤ 1280 px, ≤ 2 MB)
route-plan OSRM + xavf bo'yicha baholash + aylanma yo'l
geocode Nominatim manzil qidiruvi (server orqali)
admin/stats Dashboard statistikasi
components/ App shell, bottom nav, SOS panel, report modal, xarita, kartochkalar
lib/
db.ts MongoDB ulanishi (global kesh) + Mongoose modellari
store.ts Ma'lumotlar qatlami (API javob shakli shu yerda)
auth.ts JWT (jose) + httpOnly cookie, rollar
routing.ts Xavfsiz yo'nalish algoritmi
telegram.ts Telegram xabar shabloni va yuborish
i18n.ts UZ / RU / EN lug'atlar
proxy.ts /admin uchun optimistik himoya (API har so'rovda rolni qayta tekshiradi)
scripts/seed.ts Demo ma'lumotlar
BOT_TOKEN va TELEGRAM_CHANNEL_ID (masalan @safeway_parents yoki -100…) ni kiriting, botni kanalga admin qiling.
Har bir yangi 🔴 yuqori xavf kanalga yuboriladi: tur, manzil, izoh, Google Maps va saytdagi xavf sahifasi havolasi.
Telegram xato bersa ham xavf saqlanadi; natija admin panelidagi jurnalda ko'rinadi. O'zgaruvchilar bo'sh bo'lsa — simulyatsiya.
bot/)Python (aiogram) bot sayt bilan bitta bazada ishlaydi (bot/.env: BOT_TOKEN, MONGODB_URI, MONGODB_DB=safeway, ADMIN_IDS).
cd bot && pip install -r requirements.txt && python bot.py
users kolleksiyasida, sayt hisoblari webusersda.voters + upvotes; bot rasmlari hazardimagesda (saytda ham ko'rinadi).botNotifiedAt bilan bir marta).npm run migrate (qayta ishga tushirish xavfsiz)./stats — hammaga ochiq, faqat o'qish uchun (GET /api/stats). Admin amallari (status, o'chirish) faqat /adminda.
Site settings → Environment variables: MONGODB_URI, AUTH_SECRET, BOT_TOKEN, TELEGRAM_CHANNEL_ID,
NEXT_PUBLIC_INSPECTOR_PHONE, DEMO_MODE. NEXT_PUBLIC_* va DEMO_MODE build vaqtida o'qiladi — o'zgartirgandan keyin
qayta deploy qiling. MongoDB Atlas → Network Access: 0.0.0.0/0 (Netlify funksiyalari IP manzili o'zgarib turadi).
Barcha ma'lumotlar (xavflar, ovozlar, statuslar, rasmlar) Atlas'da — qayta deploy yoki funksiya qayta ishga tushishi ularga ta'sir qilmaydi.