33[ ![ Python 3.12] ( https://img.shields.io/badge/python-3.12-blue.svg )] ( https://www.python.org/downloads/ )
44[ ![ FastAPI] ( https://img.shields.io/badge/FastAPI-0.100+-00a393.svg )] ( https://fastapi.tiangolo.com/ )
55[ ![ MLflow] ( https://img.shields.io/badge/MLflow-2.15-0194E2.svg )] ( https://mlflow.org/ )
6- [ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-yellow.svg )] ( https://opensource.org/licenses/MIT )
76
87An end-to-end machine learning system for detecting phishing websites using network security data. Built with production-grade MLOps practices including automated training pipelines, experiment tracking, and real-time inference API.
98
@@ -144,47 +143,6 @@ networkSecuritySystem/
144143- ** Jinja2** : Template rendering
145144- ** Python-dotenv** : Environment management
146145
147- ## 📦 Installation
148-
149- ### Prerequisites
150- - Python 3.12+
151- - MongoDB instance (local or Atlas)
152- - Git
153-
154- ### Setup
155-
156- 1 . ** Clone the repository**
157- ``` bash
158- git clone https://github.com/pycoder49/networkSecuritySystem.git
159- cd networkSecuritySystem
160- ```
161-
162- 2 . ** Create virtual environment**
163- ``` bash
164- # Using conda
165- conda create -p ./venv python=3.12 -y
166- conda activate ./venv
167-
168- # Or using venv
169- python -m venv venv
170- source venv/bin/activate # On Windows: venv\Scripts\activate
171- ```
172-
173- 3 . ** Install dependencies**
174- ``` bash
175- pip install -r requirements.txt
176- ```
177-
178- 4 . ** Configure environment variables**
179- ``` bash
180- # Create .env file
181- echo ' MONGODB_URI="your_mongodb_connection_string"' > .env
182- ```
183-
184- 5 . ** Verify MongoDB connection**
185- ``` bash
186- python test_mongodb.py
187- ```
188146
189147## 🚀 Usage
190148
@@ -203,25 +161,9 @@ This will:
2031615 . Log experiments to MLflow
2041626 . Save best model to ` final_model/ `
205163
206- ### Starting the API Server
207-
208- ``` bash
209- # Start FastAPI server
210- uvicorn app:app --reload --host localhost --port 8000
211- ```
212-
213- Access the API:
214- - ** Swagger UI** : http://localhost:8000/docs
215- - ** ReDoc** : http://localhost:8000/redoc
216164
217165### Making Predictions
218166
219- #### Via API (Swagger UI)
220- 1 . Navigate to http://localhost:8000/docs
221- 2 . Click on ` /predict ` endpoint
222- 3 . Upload CSV file with network features
223- 4 . View predictions in HTML table format
224-
225167#### Via cURL
226168``` bash
227169curl -X POST " http://localhost:8000/predict" \
@@ -296,54 +238,6 @@ Logged metrics:
296238- Model parameters
297239- Training artifacts
298240
299- ## 🧪 Testing
300-
301- ``` bash
302- # Test individual components
303- python -m network_security.components.data_ingestion
304- python -m network_security.components.data_validation
305- python -m network_security.components.model_trainer
306-
307- # Test API endpoints
308- pytest tests/ # (if test suite exists)
309- ```
310-
311- ## 🐛 Troubleshooting
312-
313- ### MongoDB Connection Issues
314- ``` python
315- # Verify connection with certifi
316- import certifi
317- ca = certifi.where()
318- client = pymongo.MongoClient(MONGODB_URI , tlsCAFile = ca)
319- ```
320-
321- ### Model Loading Errors
322- Ensure preprocessor and model are in ` final_model/ ` :
323- ```
324- final_model/
325- ├── preprocessor.pkl
326- └── model.pkl
327- ```
328-
329- ### API Server Issues
330- ``` bash
331- # Check if port is already in use
332- netstat -ano | findstr :8000 # Windows
333- lsof -i :8000 # Linux/Mac
334-
335- # Use different port
336- uvicorn app:app --port 8001
337- ```
338-
339- ## 🚦 Development Workflow
340-
341- 1 . ** Data Exploration** : Jupyter notebooks for EDA
342- 2 . ** Component Development** : Build and test individual pipeline components
343- 3 . ** Integration** : Connect components in ` main.py `
344- 4 . ** Experimentation** : Use MLflow to track experiments
345- 5 . ** API Development** : Implement endpoints in ` app.py `
346- 6 . ** Deployment** : Deploy to cloud (AWS, Azure, GCP)
347241
348242## 🎯 Future Enhancements
349243
@@ -364,18 +258,3 @@ uvicorn app:app --port 8001
364258365259- GitHub: [ @pycoder49 ] ( https://github.com/pycoder49 )
366260- DagHub: [ pycoder49/networkSecuritySystem] ( https://dagshub.com/pycoder49/networkSecuritySystem )
367-
368- ## 📝 License
369-
370- This project is licensed under the MIT License - see the LICENSE file for details.
371-
372- ## 🙏 Acknowledgments
373-
374- - Dataset: Network security phishing detection dataset
375- - MLflow for experiment tracking
376- - DagHub for remote tracking server
377- - FastAPI community for excellent documentation
378-
379- ---
380-
381- ** Note** : This is a portfolio project demonstrating end-to-end ML engineering skills including pipeline design, MLOps practices, API development, and production-ready code organization.
0 commit comments