CyberEnigma - bu sun'iy intellekt va mashinali o'rganish texnologiyalari yordamida spam xabarlarni aniqlaydigan Flask asosidagi web ilova.
Bu loyiha xabar matnlarini tahlil qilib, ularning spam yoki spam emasligini aniqlaydi. Tizim Naive Bayes algoritmi va scikit-learn kutubxonasidan foydalangan holda xabarlarni klassifikatsiya qiladi.
- π€ Spam Aniqlash - Matnli xabarlarni tahlil qilish va spam/ham klassifikatsiyasi
- π Machine Learning - Naive Bayes algoritmi asosida o'qitilgan model
- ποΈ Ma'lumotlar Bazasi - MySQL bilan integratsiya
- π Autentifikatsiya - Foydalanuvchilarni ro'yxatdan o'tkazish va kirish tizimi
- π RESTful API - Flask orqali yaratilgan API endpointlar
- π CORS Qo'llab-quvvatlash - Frontend bilan oson integratsiya
- Backend: Flask (Python)
- Machine Learning: scikit-learn, pandas, numpy
- Ma'lumotlar Bazasi: MySQL
- ORM: SQLAlchemy
- Autentifikatsiya: Flask-Login, Flask-Bcrypt
- Server: Gunicorn
cyberenigma/
βββ controller/ # Controllerlar (biznes logika)
β βββ sitecontroller.py # Asosiy sahifa va spam tekshirish
β βββ authcontroller.py # Autentifikatsiya
βββ model/ # Ma'lumotlar bazasi modellari
β βββ spam.py # Spam modeli
β βββ user. py # Foydalanuvchi modeli
βββ routes/ # URL marshrutlar
β βββ site. py # Asosiy marshrutlar
β βββ auth.py # Auth marshrutlar
βββ services/ # Servislar va yordamchi funksiyalar
β βββ spamanalizer.py # Spam tahlil qilish servisi
βββ main.py # Asosiy kirish nuqtasi
βββ db.py # Ma'lumotlar bazasi konfiguratsiyasi
βββ spam.csv # O'qitish uchun dataset
βββ requirements.txt # Python kutubxonalari
βββ req.txt # To'liq kutubxonalar ro'yxati
git clone https://github.com/root0x7/cyberenigma.git
cd cyberenigmapython -m venv venv
source venv/bin/activate # Linux/Mac
# yoki
venv\Scripts\activate # Windowspip install -r requirements.txtMySQL ma'lumotlar bazasini yarating:
CREATE DATABASE enigma;main.py faylida ma'lumotlar bazasi ulanishini sozlang:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://foydalanuvchi:parol@localhost/enigma'python main.pyIlova http://localhost:5000 manzilida ishga tushadi.
GET /
Javob: Flask ilovasi ishlayotganligini tasdiqlaydi
GET /analiz? msg=your_message_here
Parametrlar:
msg- Tekshiriladigan xabar matni
Javob:
{
"status": "spam" // yoki "not-spam"
}GET /spam? msg=your_message_here
Parametrlar:
msg- Tekshiriladigan xabar matni
Javob:
{
"status": "spam" // yoki "not-spam"
}GET /auth/login? login=username&password=password
Parametrlar:
login- Foydalanuvchi nomipassword- Parol
Javob:
{
"login": "username",
"pass": "password"
}GET /auth/profile
Javob: Foydalanuvchi profili ma'lumotlari
Loyihada Multinomial Naive Bayes algoritmi qo'llanilgan:
- Dataset:
spam.csvfayli - spam va ham xabarlar to'plami - Feature Extraction: CountVectorizer - matnni raqamli ko'rinishga o'tkazish
- Train/Test Split: 67% o'qitish, 33% test
- Model: MultinomialNB klassifikatori
1. Matnni vektorlarga aylantirish (CountVectorizer)
2. Modelni o'qitish (train data)
3. Yangi xabarni tahlil qilish
4. Natija: spam yoki ham- id: Integer (Primary Key)
- status: String (spam/ham)
- message: Text (xabar matni)
- date: Date (sana)- id: Integer (Primary Key)
- login: String (foydalanuvchi nomi)
- password: String (parol - hash qilingan)
- role: String (foydalanuvchi roli)CORS(app, origins=["http://localhost:8080"])app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://phpmyadmin:xroot@localhost/enigma'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falseapp.secret_key = 'juda_ishonchli_parol'# Spam tekshirish
curl "http://localhost:5000/analiz?msg=Congratulations! You won $1000"
# Kirish
curl "http://localhost:5000/auth/login?login=admin&password=123456"import requests
# Spam tekshirish
response = requests.get('http://localhost:5000/analiz',
params={'msg': 'Free money click here'})
print(response.json())- Repozitoriyani fork qiling
- Feature branch yarating (
git checkout -b feature/AmazingFeature) - O'zgarishlarni commit qiling (
git commit -m 'Add some AmazingFeature') - Branchga push qiling (
git push origin feature/AmazingFeature) - Pull Request oching
Bu loyiha ochiq kodli loyiha hisoblanadi.
root0x7 - GitHub Profile
Savollar yoki takliflar uchun GitHub Issues orqali murojaat qiling.
β Agar loyiha yoqsa, repo'ga yulduzcha qo'yishni unutmang!