I bob bo‘yicha xulosa - Fast-food uz

|
Fast-food uz
|
bet | 4/10 | Sana | 26.07.2024 | Hajmi | 2,55 Mb. | | #268679 |
Bog'liq BMII bob bo‘yicha xulosa
Ushbu bobda onlayn savdo platformalari hamda onlayn savdoni rivojlantirish bosqichlari tahlil qilindi. Shuningdek, O‘zbekistonda tez tayyor bo‘luvchi taomlarga bo‘lgan talabning qay darajada yuqori ekanligi o‘rganildi. Mazkur soxada onlayn savdoni shakillantirish va takomillashtirish haqida fikr yuritildi. Onlayn savdo veb ilovalarini ishlab chiqishda qo‘llanilib kelinayotgan dasturiy texnologiyalar tahlil qilinib, avfzallik va kamchiliklari ko‘rib chiqildi.
II BOB. FAST-FOOD.UZ VEB ILOVASINI ISHLAB CHIQISH BOSQICHLARI
2.1. “fast-food.uz” veb ilovasini ishlab chiqish bosqichlari.
“fast-food.uz” veb ilovasini ishlab chiqish jarayoni keng va murakkab bosqichlardan o‘tdi. Bu veb ilova, tez ovqatlanish restoranlarining onlayn buyurtma tizimini taqdim etish maqsadida yaratildi. “fast-food.uz” veb ilovasi yaratilishi uchun muhim bosqichlar tuzildi va har bir bosqichning ehtiyojlariga e’tibor berildi.
Dastlab, veb ilova tashkil etilishi kerak bo‘lgan asosiy maqsad va qo‘llanma shakllantirildi. “fast-food.uz” veb ilovasining maqsadi Fast-food restoranlarining mijozlariga onlayn buyurtma berish imkoniyatini taqdim etishdir. Bu maqsad bilan, veb ilova foydalanuvchilarga sodda, tez va qulay buyurtma jarayonini ta’minlashi kerak.
Loyihalash fazasida, veb ilovaning asosiy tuzilishi, interfeysi va dizayni belgilandi.
Dasturlash fazasida, ilovani ishlab chiqishni boshlandi. Bu bosqichda, ilovaning tizim arxitekturasi, ma’lumotlar bazasi tuzilmalari va ilova dasturlash tillari belgilandi. Keyin, ilova test qilindi va har qanday xato yoki muammolar aniqlanib tuzatildi.
Ilova ishlab chiqilganidan so‘ng, reklama va bozorlash jarayonlari boshlandi. Bu bosqichda, ilova ommaviy e’lon qilindi, ijtimoiy tarmoqlarda reklama qilindi va mijozlarni jalb qilish uchun strategiyalar belgilandi. Reklama va bozorlash strategiyasi ilova foydalanuvchilari sonining ortishida uchun muhimdir.
Ilovani ishlatish davomida, monitoring va yangilanishlar amalga oshirildi. Bu bosqichda, ilova statistik ma’lumotlarini nazorat qiladi va mijozlar takliflariga asosida ilovada yangi funksiyalar qo‘shildi, xato tuzatildi.
“fast-food.uz” veb ilovasi yaratish jarayoni o‘zida murakkablik va koordinatsiya talab etadi. Har bir bosqichning diqqat bilan amalga oshirilishi va ilova ishlab chiqish jamoasining birgalikda ishlashi muhimdir. “fast-food.uz” veb ilovasining frontend qismi JavaScriptda qilindi. Bu odatda HTML va CSS bilan
birga ishlaydi va interaktivlik hamda dinamiklik qo‘shish uchun JavaScriptdan
foydalanildi.
Quyida “fast-food.uz” veb ilovasining frontend qismida qanday funksiyalar bo‘lishi mumkinligini keltirib o‘tildi:
Menyu ko‘rsatish va tanlash: JavaScript menyu elementlarini tanlash, ularga tushish va buyurtma berish uchun funksiyalarni yozish orqali foydalanuvchiga interaktivlik beradi;
Buyurtma qo‘shish: Foydalanuvchining tanlagan mahsulotlarni savatchaga qo‘shish, ularning sonini belgilash va buyurtmani qabul qilish uchun JavaScript kodini ishlatildi.Savatni boshqarish: Foydalanuvchining savatini ko‘rsatish, mahsulotlarni o‘chirish va buyurtmani tasdiqlash uchun funksiyalar qo‘shildi;
Buyurtmalarni tasdiqlash va to‘lov jarayoni: Foydalanuvchining buyurtmani tasdiqlash va to‘lovni amalga oshirish uchun JavaScript funksiyalari qo‘llanildi;
Ma’lumotlarni ko‘rsatish: Buyurtmalar tarixini, to‘lov tafsilotlarini va boshqa ma’lumotlarni ko‘rsatish uchun JavaScript orqali interfeys to‘ldirildi;
Qidirish funktsiyalari: Mahsulotlar ro‘yxatini qidirish va filtrlash imkoniyatlarini taqdim etildi.
Bu funksiyalarni o‘z ichiga olgan JavaScript kodini yozildi. Masalan, HTML da tanlangan elementlarga oid hodisalarga eslab qolish uchun “event listeners” qo‘shish, foydalanuvchining kiritgan ma’lumotlarni tekshirish, o‘zgartirishlar qilish va boshqalar kabi ko‘rinishlarni ishlatildi.
“fast-food.uz” veb ilovasining backend qismi Python dastirlash tilining frameworki Djangoda yaratildi. Bu fremworkni tanlashning bir nechta sabablarini Django haqida quyidagi ma’lumotlar orqali keltirib o‘tildi[7].
Django nima va u qanday ishlaydi? Django - python dasturlash tilida veb ilovalar ishlab chiqish uchun ajoyib freymvork. Freymvork python dasturlash tilida yozilgan(2.1-rasm). Django freymvorki birinchi bor 2005-yil 21-iyulda ishga tushirilgan. Loyihani ishlab chiquvchilari Django Software Foundationdir va loyiha ular tomonidan qo‘llab-quvvatlanadi. Dasturchilar: Rasl Keyt Magi, Adrian Holovaty, Saymon Vilson, Yakob Kaplan Moss, Uilson Mayner. Freymvork krossplatformalikdir (ya’ni barcha operatsion tizimlarni qo‘llab quvvatlaydi). Djangoda yaratilgan sayt bir yoki bir nechta ilovalardan tashkil topishi mumkin. Bu esa freymvorkning arxitekturasini boshqalaridan farqli jihatidir (Misol uchun: Ruby on Rails). Xulosa: Django bu veb freymvork. Freymvorkning ishlash prinsplaridan biri bu - DRY (Don’t repeat yourself – “o‘z-o‘zingni takrorlarma”). Bu degani, siz sayt yozish davomida siz “velosiped”ni qaytadan ixtiro qilmaysiz, u siz uchun tayyor. Ya’ni bir kodni qaytadan yozishga hojat yo‘q, bu esa veb ilovaning yaratilish protsessini tezlashtiradi Boya aytib o‘tganimdek, Django 2005-yilda ishlab chiqildi va shu vaqtdan boshlab bosqichmabosqich eng yaxshi freymvorklar qatoridan o‘rin egalladi. Freymvork dasturchilarning muammolarini bir necha daqiqa mobaynida hal etib bermoqda.
2.1-rasm. Django loyihasining tuzilishi
Django veb ilovalarning yozilish jarayonini sezilarli darajada yengillashtirdi va veb ilovalar yaratish uchun ajoyib, soddalashtirilgan yo‘lni taqdim eta oldi. Freymvork MVC loyihalashtirish shablonidan foydalanadi: MVC – “Model View Controller” ya’ni: Model (model- ma’lumotlarni o‘zida saqlaydi va controller buyruqlariga asoslanib o‘z holatini o‘zgaritiradi), View (ko‘rinish yoki interfeys - ma’lumotlarning tashqi ko‘rinishini ta’minlaydi), Controller(boshqaruvchi -ya’ni foydalanuvchi harakatlarini interpretatsiya qiladi) MODEL - Djangoning rasmiy qo‘llanmasida(django documentation) model bu “ma’lumotlarning manbasi” ekanligi haqida aytilgan. U o‘zida kalit so‘zlar va ma’lumotlarni saqlaydi. Qisqa qilib aytganda ma’lumotlar “jadval” ko‘rinishida saqlanadi va buning uchun Djangoda: PostgreSQL, MySQL, SQLite va Oracle kabi ma’lumotlar omborlarini qo‘llab quvvatlaydi. Django foydalanilganida, fast-food veb ilovasining back-end qismi Python tilida yoziladi. Bu qism ma’lumotlar bazasi bilan bog‘liq operatsiyalarni bajaradi va ularni frontend qismiga ma’lumot taqdim etadi[7].
Quyidagi funksiyalar uchun Django qo‘llanildi:
Foydalanuvchi ma’lumotlarini saqlash: Foydalanuvchilar, buyurtmalar, to‘lovlar va boshqa ma’lumotlar uchun ma’lumotlar bazasi modellari yaratildi;
Buyurtmalar va mahsulotlar uchun CRUD operatsiyalari: Django ORM (Object-Relational Mapper) orqali foydalanuvchilar buyurtma berish, ularni o‘zgartirish, o‘chirish va ko‘rish imkoniyatlari taqdim etildi;
Foydalanuvchilar uchun avtorizatsiya va autentifikatsiya: Foydalanuvchilarni ro‘yxatdan o‘tkazish, tizimga kiring va chiqishing, uning ma’lumotlarini o‘zgartirish uchun Django built-in autentifikatsiya va avtorizatsiya funksiyalari ishlatildi;
RESTful API yaratish: Django REST Framework yordamida RESTful API yaratish, ma’lumotlarni JSON yoki boshqa formatlarda frontend ilovalariga taqdim etish uchun;
Qidiruv va filtrlash funktsiyalari: Foydalanuvchilarga qidiruv va filtrlash imkoniyatlari taqdim etish uchun Django filtrlash va qidiruvning kuchli vositalaridan foydalanildi;
To‘lov integratsiyalari: Agar to‘lov integratsiyalari kerak bo‘lsa, Django to‘lov kichik modullar yordamida qo‘llanildi.
Bu funksiyalarni yaratish uchun, Djang proyekt yaratildi va kerakli ma’lumotlar bazasi modellari, URLs, views, forms va templates yaratildi. Har bir funktsiyani joylashtirish va ularga oid talablar, ilova funktsionalligiga qarab belgilandi.
“fast-food.uz” veb ilovasining ishlash tartibi diagrammasi frontend va backend
o‘rtasidagi o‘zaro aloqani tushuntiradi. Quyida React JS frontend qismi asosida tuzilgan fast food ilovasi uchun ishlash tartibi diagrammasini ko‘rishingiz mumkin[7].
2.2-rasm. “fast-food.uz” veb ilovasi ishlash diagrammasi interfeysi
Ishlash tartibi diagrammasi(2.2-rasm).
Foydalanuvchi:
foydalanuvchi ilovani ochadi va asosiy menyu ekranini ko‘radi.
Menyu komponenti:
foydalanuvchi menyudagi mahsulotlarni ko‘radi;
menyu komponenti backend serveridan (masalan, REST API) menyu ma’lumotlarini yuklab oladi va foydalanuvchiga ko‘rsatadi.
Mahsulot qo‘shish (Add to Cart):
foydalanuvchi “Add to Cart” tugmasini bosganda, mahsulot Cart komponentiga qo‘shiladi;
bu holatda mahsulot va uning miqdori foydalanuvchi holatiga (state) qo‘shiladi.
Savat (Cart) komponenti:
foydalanuvchi savatdagi mahsulotlarni ko‘rish uchun Cart komponentini ochadi;
bu komponent foydalanuvchining tanlagan mahsulotlarini ro‘yxatlaydi va jami narxni ko‘rsatadi.
Buyurtmani tasdiqlash (Checkout)
foydalanuvchi “Checkout” tugmasini bosganda, buyurtma backend serveriga yuboriladi;
backend serveri buyurtmani qabul qiladi va tasdiqlash ma’lumotlarini qaytaradi.
Buyurtma tasdiqlash va to‘lov:
buyurtma backend serveri orqali tasdiqlanadi va to‘lov jarayoni boshlanadi;
to‘lov muvaffaqiyatli amalga oshirilganda, foydalanuvchiga tasdiqlash xabari yuboriladi.
2.3-rasm. SQL kodlari
“fast-food.uz” veb ilovasi uchun ma’lumotlar bazasini SQLda yaratish juda muhimdir. Bu jarayonda MySQL ma’lumotlar bazasi menejer tizimlaridan foydalanildi.
Quyida asosiy ma’lumotlar bazasini yaratish va ulardan foydalanish ketma-ketligi keltirilgan.
foydalanuvchilarni saqlash uchun jadval yaratamiz;
menyudagi mahsulotlarni saqlash uchun jadval yaratamiz;
buyurtmalarni saqlash uchun jadval yaratamiz;
buyurtma mahsulotlarini saqlash uchun jadval yaratamiz;
menyu mahsulotlarini qo‘shish uchun insert so‘rovidan foydalanamiz;
buyurtma yaratish va buyurtma mahsulotlarini qo‘shish uchun insert so‘rovidan foydalanildi;
frontend ilovasi bu sql ma’lumotlar bazasi bilan restful api orqali bog‘lanadi.
Yuqoridagi misollar fast-food veb ilovasi uchun SQLda ma’lumotlar bazasini qanday yaratish kerakligini ko‘rsatadi(2.3-rasm). Bu strukturani kengaytirish va qo‘shimcha funksiyalar qo‘shish mumkin, masalan, mahsulot kategoriya va foydalanuvchi roli kabi. Ma’lumotlar bazasi tuzilmasi va SQL so‘rovlari bilan tanishib chiqish, loyiha talablariga qarab o‘zgartirishlar kiritish mumkin.
2.2. Yaratilgan veb ilovada xavfsizlikni ta’minlash.
Qanday qilib web-saytni xavfsiz saqlash mumkin. Shunchaki web-sayt xavfsiz deb o‘ylab bo‘lmaydi. Agar xavfsizlikni kuchaytirish uchun hech narsa qilinmagan bo‘lsa, ehtimol u hujumlar uchun zaifdir. Agar biror narsa qilgan bo‘lsa ham, saytni yangilab turish va uning xavfsizligiga ishonch hosil qilish kerak. Internet tez harakat qiladi. Bu yerda "ehtimol" uchun joy yo‘q. Bu 2025-yilda web-sayt xavfsizligini yaxshilash uchun bajarish kerak bo‘lgan qadamlardir.
HTTPS protokolidan foydalanish kerak. Agar web-sayt hozirda HTTPS protokolidan foydalanmayotgan bo‘lsa, u ustuvorliklar ro‘yxatining yuqori qismiga o‘tishi kerak. Bu, aslida, web-saytga tashrif buyuruvchilarga ular to‘g‘ri server bilan o‘zaro aloqada ekanliklarini va boshqa hech narsa ular ko‘rayotgan kontentni o‘zgartira olmaydi yoki ushlab tura olmaydi. HTTPSsiz xaker saytga tashrif buyuruvchilardan shaxsiy ma’lumotlarni to‘plash uchun sahifadagi ma’lumotlarni o‘zgartirishi mumkin. Masalan, ular foydalanuvchilarning login ma’lumotlari va parollarini o‘g‘irlashlari mumkin. HTTPS protokoli qidiruv reytingingizni ham yaxshilaydi. Google ushbu xavfsizlik chorasidan foydalanadigan web-saytlarni mukofotlaydi. Bu esa web-saytga tashrif buyuradigan odamlar uchun ham taskin beradi. Bundan tashqari, HTTPS-ni SSL (xavfsiz rozetkalar qatlami) sertifikati bilan birlashtirib, ushbu xavfsizlik chorasini yanada yaxshilash mumkin. Bu elektron tijorat web-saytlari uchun talab qilinadi, chunki foydalanuvchilar kredit karta raqamlari, ismlar va manzillar kabi nozik ma’lumotlarni taqdim etadilar. SSL sertifikatlari server va foydalanuvchi web-brauzeri o‘rtasidagi aloqani shifrlaydi. Bu web-saytni xavfsiz saqlash uchun juda yaxshi qo‘shimcha shifrlash qatlami (garchi u hujumlar yoki zararli dasturlarning tarqalishini oldini olmasa ham). Web-saytda hech narsa sotmasa ham, HTTPS protokolidan foydalanishni va xavfsizlikni qo‘shish uchun SSL sertifikatini qo‘shish tavsiya qilinadi[20].
2.4-rasm. HTTP va HTTPS protokoli
Agar kompyuter bo‘lsa, dasturiy ta’minotni muammosiz ishlashi uchun qanchalik tez-tez yangilash kerakligini bilish mumkin. Ular zerikarli bo‘lishi mumkin, lekin ular kerak. Xuddi shu narsa web-saytga ham tegishli. WordPress dasturiy ta’minoti, plaginlari, CMS va yangilanishi kerak bo‘lgan boshqa narsalarning eng so‘nggi versiyasiga ega ekanligiga ishonch hosil qilish lozim. Xatolar yoki nosozliklarni tuzatishdan tashqari, dasturiy ta’minot yangilanishlari odatda xavfsizlikni yaxshilash bilan birga keladi. Hech bir dastur mukammal emas. Xakerlar doimo o‘zlarining zaifliklaridan foydalanish yo‘llarini qidiradilar. Ko‘pgina kiberhujumlar avtomatlashtirilgan. Jinoyatchilar zaif web-saytlarni skanerlash uchun botlardan foydalanadilar. Shunday qilib, agar dasturiy ta’minotning so‘nggi versiyalaridan xabardor bo‘lmasa, xakerlar bu haqda biror narsa qilinishidan oldin saytni aniqlab olishlari va nishonga olishlari oson bo‘ladi.
Xavfsiz web-xosting rejasini tanlash kerak. Nazariy jihatdan, web-xosting provayder o‘z serverlarida xavfsizlikka ega bo‘lsa, bir xil himoya darajalaridan foydalanadi. Biroq, bu har doim ham shunday emas. Umumiy hosting rejasi bilan ishlash narx tufayli jozibador bo‘lishi mumkin, ammo bu qila oladigan eng xavfsiz tanlov emas. Nomidan ko‘rinib turibdiki, agar ushbu turdagi hosting rejasini tanlasa, serverlarni boshqa web-saytlar bilan baham ko‘radi. Agar boshqa saytlardan biri hujumga uchrasa, xaker foydalanayotgan serverga ham kirishi mumkin. Bu shuni anglatadiki, to‘g‘ridan-to‘g‘ri maqsadli bo‘lmas ham, xakerlar web-saytga zarar yetkazishi mumkin.
Agar WordPress-dan foydalansa, eng yaxshi WordPress xavfsizlik plaginlari bo‘yicha qo‘llanmani ko‘rib chiqishni tavsiya qilinadi. Ushbu ro‘yxatdagi plaginlar real vaqtda zararli dasturlar, spam va boshqa tahdidlarga qarshi kurashayotganda web-saytga xavfsizlik devori qo‘shadi. Agar WordPress-dan foydalanmasa, web-saytning kontent menejeri yaxshi xavfsizlik qo‘shimchalarini taklif qiladimi yoki yo‘qligini tekshirish kerak. Aks holda, CMS qanday bo‘lishidan qat’iy nazar, IT infratuzilmani xavfsiz saqlaydigan yaxshi so‘nggi nuqta xavfsizlik dasturlari ro‘yxatini ko‘rib chiqish lozim. Hujum sodir bo‘lishidan oldin uni to‘xtatish uchun profilaktika choralarini ko‘rish uchun zaifliklarni ta’kidlaydigan xavfsizlik tekshiruvlarini o‘tkazish mumkin[20].
Kiberxavfsizlik hujumlarining 95 foizi inson xatosi natijasidir. Shuning uchun xodimlarni kiberxavfsizlikning ahamiyati haqida o‘rgatish juda muhim. Buning oldini olishning eng yaxshi yo‘li xato qilishi mumkin bo‘lgan odamlar sonini cheklashdir. Biznesning har bir xodimi web-saytga kirish huquqiga ega emas. Agar tashqi maslahatchi, dizayner yoki mehmon bloggerni yollayotgan bo‘lsa, u odamlarga web-sayt sozlamalarini o‘zgartirishga avtomatik ravishda ruxsat bermaslik kerak. Eng kam imtiyoz tamoyilini amalga oshirish to‘g‘ri yo‘l. Aytaylik, loyihani web-saytga ma’lum darajadagi kirishni talab qiladigan kishiga tayinladi. Ushbu printsipni qo‘llash orqali ularga faqat mutlaq minimal kirish darajasini beradi, chunki ular vazifani bajarishlari kerak. Tugatgandan so‘ng, odam odatdagi kirish qobiliyatiga qaytadi. Har bir foydalanuvchining o‘z login ma’lumotlariga ega ekanligiga ishonch hosil qilish kerak. Agar bir nechta odam foydalanuvchi nomi va parolni baham ko‘rsa, bu ularga hech qanday javobgarlikni bermaydi va xavfsizlik buzilishini kuzatishni qiyinlashtiradi. Agar xato yoki o‘zgarish kuzatilsa, jamoani nozik ma’lumotlarga nisbatan ehtiyotkor bo‘lish ehtimoli ko‘proq.
Web-saytni zaxiralash kerak. Web-saytni himoya qilish haqida gap ketganda, doimo eng yomoniga tayyorlanish kerak. Shubhasiz, hech qachon web-saytni buzilgan holatda bo‘lishni xohlamaydi. Ammo biror narsa noto‘g‘ri bo‘lgan taqdirda, kontent to‘liq zaxiralangan bo‘lsa, ish ancha osonlashadi. Shunday qilib, hujum natijasida web-saytda hech narsani yo‘qotmasligiga ishonch hosil qilish uchun BackupBuddy kabi zaxira plaginidan foydalanish kerak. BackupBuddy - bu yil men ko‘rib chiqqan eng yaxshi beshta WordPress zaxira plaginlaridan biri. Ushbu zaxira plaginlarining ba’zilari hujumning oldini olishga yordam beradigan ichki xavfsizlik choralari bilan birga keladi. Bugungi kunda juda ko‘p kiberhujumlar avtomatlashtirilgan. Hackerlar standart sozlamalari bo‘lgan saytlarni topish uchun botlarni dasturlashadi. Shu tarzda ular kengroq web-saytlarni nishonga olishlari va bir xil turdagi zararli dasturlar yoki viruslar yordamida kirish huquqiga ega bo‘lishlari mumkin[20].
Fayllarni yuklashni cheklash. Web-saytga tashrif buyuruvchilarga
web-saytga fayllarni yuklashiga ruxsat berish xavfli bo‘lishi mumkin. Buning sababi shundaki, har qanday fayl serverda bajarilganda web-saytdagi zaifliklardan foydalanadigan skriptni o‘z ichiga olishi mumkin. Ba’zi hollarda web-saytning tabiati fayllarni yuklashni talab qilishi mumkin. Masalan, foydalanuvchilar sharh yozayotganda mahsulotning fotosuratlarini qo‘shishlarini xohlashi mumkin. Bunday holda, hali ham barcha yuklamalarni potentsial tahdid sifatida ko‘rish kerak. Uni shunday sozlash mumkinki, yuklangan har qanday fayllar boshqa joydagi jild yoki maʼlumotlar bazasida saqlanadi.
|
| |