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!