Project Overview
This system classifies network traffic as "normal" or "malicious" using a machine learning model trained on the NSL-KDD dataset. The application, built with Flask, allows users to upload data and visualize results.
Terraform is used to provision AWS resources, including ECS Fargate for containerized deployment. The CI/CD pipeline, implemented with GitHub Actions, automates testing, image scanning, and deployment across Dev, Staging, and Production environments.
Key Features
- User Authentication: Secure login and personalized storage of classification results.
- Data Classification: Process and classify NSL-KDD formatted network traffic data with a machine learning model.
- Visualization: Dynamic charts displaying insights like malicious traffic percentages.
- Scalability & Security:Scalability & Security: Deployed on AWS, leveraging Docker, Terraform, and AWS ECS Fargate for a fault-tolerant and secure architecture.
Tech Stack
- Frontend: Next.js with Tailwind CSS.
- Backend: Flask with JWT-based authentication
- Machine Learning: scikit-learn with joblib for model deployment.
- Infrastructure:Infrastructure: Docker, Terraform, AWS (CodePipeline, ECS, ECR).
How it works
- Users upload network data in NSL-KDD format.
- Data is validated, preprocessed, and analyzed by a trained machine learning model.
- Results are visualized as interactive charts and displayed in the app.