Skip to content

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” CyberEnigma - Spam Aniqlash Tizimi

CyberEnigma - bu sun'iy intellekt va mashinali o'rganish texnologiyalari yordamida spam xabarlarni aniqlaydigan Flask asosidagi web ilova.

πŸ“‹ Loyiha Haqida

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.

✨ Asosiy Xususiyatlar

  • πŸ€– 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

πŸ› οΈ Texnologiyalar

  • Backend: Flask (Python)
  • Machine Learning: scikit-learn, pandas, numpy
  • Ma'lumotlar Bazasi: MySQL
  • ORM: SQLAlchemy
  • Autentifikatsiya: Flask-Login, Flask-Bcrypt
  • Server: Gunicorn

πŸ“ Loyiha Strukturasi

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

πŸš€ O'rnatish va Ishga Tushirish

1. Repozitoriyani Klonlash

git clone https://github.com/root0x7/cyberenigma.git
cd cyberenigma

2. Virtual Muhitni Yaratish

python -m venv venv
source venv/bin/activate  # Linux/Mac
# yoki
venv\Scripts\activate  # Windows

3. Kerakli Kutubxonalarni O'rnatish

pip install -r requirements.txt

4. Ma'lumotlar Bazasini Sozlash

MySQL 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'

5. Ilovani Ishga Tushirish

python main.py

Ilova http://localhost:5000 manzilida ishga tushadi.

πŸ“‘ API Endpointlar

Asosiy Endpointlar

1. Asosiy Sahifa

GET /

Javob: Flask ilovasi ishlayotganligini tasdiqlaydi

2. Spam Tekshirish (CSV ma'lumotlari asosida)

GET /analiz? msg=your_message_here

Parametrlar:

  • msg - Tekshiriladigan xabar matni

Javob:

{
  "status": "spam"  // yoki "not-spam"
}

3. Spam Tekshirish (Bazadagi ma'lumotlar asosida)

GET /spam? msg=your_message_here

Parametrlar:

  • msg - Tekshiriladigan xabar matni

Javob:

{
  "status": "spam"  // yoki "not-spam"
}

Autentifikatsiya Endpointlar

1. Kirish

GET /auth/login? login=username&password=password

Parametrlar:

  • login - Foydalanuvchi nomi
  • password - Parol

Javob:

{
  "login": "username",
  "pass": "password"
}

2. Profil

GET /auth/profile

Javob: Foydalanuvchi profili ma'lumotlari

🧠 Machine Learning Modeli

Loyihada Multinomial Naive Bayes algoritmi qo'llanilgan:

  1. Dataset: spam.csv fayli - spam va ham xabarlar to'plami
  2. Feature Extraction: CountVectorizer - matnni raqamli ko'rinishga o'tkazish
  3. Train/Test Split: 67% o'qitish, 33% test
  4. Model: MultinomialNB klassifikatori

Model Ishlash Prinsipi

1. Matnni vektorlarga aylantirish (CountVectorizer)
2. Modelni o'qitish (train data)
3. Yangi xabarni tahlil qilish
4. Natija:  spam yoki ham

πŸ’Ύ Ma'lumotlar Bazasi Modellari

Spam Modeli

- id: Integer (Primary Key)
- status: String (spam/ham)
- message: Text (xabar matni)
- date: Date (sana)

User Modeli

- id: Integer (Primary Key)
- login: String (foydalanuvchi nomi)
- password: String (parol - hash qilingan)
- role: String (foydalanuvchi roli)

πŸ”§ Konfiguratsiya

CORS Sozlamalari

CORS(app, origins=["http://localhost:8080"])

Ma'lumotlar Bazasi

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://phpmyadmin:xroot@localhost/enigma'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

Secret Key

app.secret_key = 'juda_ishonchli_parol'

πŸ“Š Foydalanish Misollari

cURL yordamida

# Spam tekshirish
curl "http://localhost:5000/analiz?msg=Congratulations!  You won $1000"

# Kirish
curl "http://localhost:5000/auth/login?login=admin&password=123456"

Python yordamida

import requests

# Spam tekshirish
response = requests.get('http://localhost:5000/analiz', 
                       params={'msg': 'Free money click here'})
print(response.json())

🀝 Hissa Qo'shish

  1. Repozitoriyani fork qiling
  2. Feature branch yarating (git checkout -b feature/AmazingFeature)
  3. O'zgarishlarni commit qiling (git commit -m 'Add some AmazingFeature')
  4. Branchga push qiling (git push origin feature/AmazingFeature)
  5. Pull Request oching

πŸ“ Litsenziya

Bu loyiha ochiq kodli loyiha hisoblanadi.

πŸ‘¨β€πŸ’» Muallif

root0x7 - GitHub Profile

πŸ“§ Aloqa

Savollar yoki takliflar uchun GitHub Issues orqali murojaat qiling.


⭐ Agar loyiha yoqsa, repo'ga yulduzcha qo'yishni unutmang!

About

cyberenigma

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages