# OVOZ BERISH TIZIMI — O'RNATISH YO'RIQNOMASI

## Joriy o'rnatma (2026-08-08 holatiga)

| Nima | Qiymat |
|---|---|
| Sayt | https://bot.ureaders.uz/ |
| Adminka | https://bot.ureaders.uz/admin/ |
| Bot | @sirdaryo_sadosi_bot |
| Webhook | https://bot.ureaders.uz/bot.php ✅ o'rnatilgan |
| Baza | `ureaders_install` (user ham shu nomda) |
| Obuna kanallari | @SirdaryoSadosi, @SirdaryoTelegram |
| E'lon kanali | @SirdaryoSadosi |
| Cron | ⚠️ hali o'rnatilmagan — 4-bo'limga qarang |

Quyidagilar — noldan o'rnatish uchun umumiy yo'riqnoma.

## Fayllar tuzilishi (serverda)

```
bot.ureaders.uz/
├── config.php        <- sozlamalar (token, baza, parol)
├── bot.php           <- bot webhook
├── cron.php          <- avtomatik yakunlash
├── install.sql       <- baza sxemasi
└── admin/
    └── index.php     <- adminka
```

## 1. Baza yaratish (cPanel)

1. cPanel > **MySQL Databases** > yangi baza yarating (masalan `eltmts_ovoz`)
2. Yangi user yarating va bazaga **ALL PRIVILEGES** bilan bog'lang
3. cPanel > **phpMyAdmin** > bazani tanlang > **Import** > `install.sql` ni yuklang

## 2. config.php ni to'ldirish

- `BOT_TOKEN` — @BotFather'dan olingan token
- `BOT_USERNAME` — bot username @siz (masalan `SirdaryoOvozBot`)
- `DB_NAME`, `DB_USER`, `DB_PASS` — 1-qadamda yaratilganlar
- `ADMIN_PASSWORD` — adminka uchun kuchli parol
- `ANNOUNCE_CHANNEL` — e'lon va natijalar chiqadigan kanal

## 3. Botni tayyorlash

1. Bot ikkala kanalda **admin** bo'lishi shart (a'zolikni tekshirish uchun)
2. Bot e'lon kanalida (`ANNOUNCE_CHANNEL`) **post yozish huquqli admin** bo'lishi shart
3. Webhook o'rnating:

```
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://bot.ureaders.uz/bot.php
```

MUHIM: bitta botga faqat BITTA webhook bo'ladi. Yangi webhook o'rnatilsa,
eski manzil darhol update olishni to'xtatadi.

## 4. Cron o'rnatish (cPanel > Cron Jobs)

Har daqiqa:

```
* * * * *  /usr/local/bin/php /home/ureaders/bot.ureaders.uz/cron.php >/dev/null 2>&1
```

(`CPANEL_USER` — sizning cPanel foydalanuvchi nomingiz. PHP yo'li hostingda
farq qilishi mumkin — cPanel'ning Cron Jobs sahifasida ko'rsatilgan yo'ldan foydalaning.)

## 5. Birinchi tanlovni ochish

1. Brauzerda `https://bot.ureaders.uz/admin/` ga kiring (config'dagi parol bilan)
2. **Yangi tanlov yaratish** — nomi, tavsifi, muddati
3. Tanlovni oching > **Tuman qo'shish** — tuman nomini yozing, mahallalarini
   har qatorda bittadan kiriting > shu tarzda barcha tumanlarni kiriting
4. **📢 Kanalga e'lon qilish** tugmasini bosing — post kanalga chiqadi
   va tanlov faollashadi

## Ish jarayoni

- Kanaldagi postda **OVOZ BERISH (N)** tugmasi turadi — N har daqiqa cron
  tomonidan yangilanadi
- Foydalanuvchi tugmani bosadi -> bot ochiladi -> obuna tekshiriladi ->
  Tuman tanlaydi -> Mahalla tanlaydi -> Tasdiqlaydi -> ovoz yoziladi
- Har bir bosqichda obuna qayta tekshiriladi (kanaldan chiqib ketganlar
  ovoz bera olmaydi)
- 1 akkaunt = 1 ovoz (bazada UNIQUE cheklov bilan kafolatlangan)
- Muddat kelganda cron tanlovni yopadi, tugmani o'chiradi va natijalarni
  (top-10, medallar bilan) kanalga e'lon qiladi
- Adminkada jonli natijalar diagramma ko'rinishida ko'rinadi;
  "Hozir yakunlash" tugmasi bilan muddatdan oldin ham yopish mumkin
