Skip to content

Latest commit

ย 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ NetFlow Lab โ€” Visual Networking Practice Playground

Learn networking visually by building, configuring, and validating network topologies in your browser.


๐Ÿง  Problem Statement

Learning networking concepts (IP addressing, subnets, routing, connectivity) is hard because:

  • Most tools like Cisco Packet Tracer are heavyweight and not beginner-friendly
  • Learners struggle to visualize how nodes connect and communicate
  • Platforms like TryHackMe give challenges but no visual builder to experiment freely

๐Ÿ‘‰ There is a gap for a lightweight, browser-based, visual networking lab focused on practice and feedback.


๐ŸŽฏ Product Vision

Build a web-based interactive networking lab where users can:

  • Visually construct network topologies
  • Configure nodes (IP, subnet, routing)
  • Attempt guided challenges
  • Get real-time validation feedback

๐ŸŽฏ Target Users

  • Beginner networking learners
  • Frontend/backend developers exploring networking basics
  • Bug bounty / security beginners
  • Students preparing for CCNA basics

๐Ÿงฉ Core MVP Concept

The product is challenge-first.

Users will:

  1. Pick a challenge
  2. Build the network visually
  3. Configure nodes
  4. Click Validate
  5. See pass/fail + hints

๐Ÿงช Example Challenges

๐ŸŸข Challenge 1 โ€” Same Subnet Communication

Goal: Connect 2 PCs in the same subnet and enable communication.

Requirements:

  • PC A and PC B connected via switch or direct link
  • Both must have IPs in same subnet
  • Subnet mask must match

๐ŸŸก Challenge 2 โ€” Inter-Subnet Routing

Goal: Allow communication between two different subnets via a router.

Requirements:

  • Two PCs in different subnets
  • Router in between
  • Correct interface IP configuration
  • Default gateway setup

๐Ÿ”ด Challenge 3 โ€” Fix Broken Network

Goal: Given a pre-built network, fix incorrect configuration.

Requirements:

  • Detect wrong IP/subnet
  • Correct routing issue

๐Ÿงฑ Core Features (MVP Scope)

1. ๐Ÿ–ผ๏ธ Visual Canvas

  • Built using React Flow
  • Drag-and-drop network nodes
  • Connect nodes using edges (cables)

2. ๐Ÿงฉ Node Types

Node Type Description Configurable
PC End device IP, subnet, gateway
Router Routing device Interfaces + IP
Switch Layer 2 device (no config in MVP)

3. โš™๏ธ Configuration Panel

On selecting a node:

PC Config

  • IP Address
  • Subnet Mask
  • Default Gateway

Router Config

  • Interface list (eth0, eth1โ€ฆ)
  • IP address per interface

4. ๐Ÿ”— Network Connections

  • User connects nodes via edges
  • Each edge represents a cable
  • Direction is not important (undirected graph)

5. ๐Ÿง  Validation Engine (Core Logic)

User clicks Validate โ†’ system runs checks:

Validation Rules:

  • โœ” All nodes are connected (no isolated nodes)
  • โœ” IP format is valid
  • โœ” Devices in same subnet can communicate
  • โœ” Devices in different subnets require router
  • โœ” Gateway is correctly configured
  • โœ” Router interfaces belong to correct subnet

6. ๐Ÿงช Challenge Engine

Each challenge contains:

  • Title
  • Description
  • Initial state (optional)
  • Validation function
type Challenge = {
  id: string;
  title: string;
  description: string;
  initialGraph?: Graph;
  validate: (graph: Graph) => ValidationResult;
};

7. ๐Ÿ’พ Local Persistence

  • Save graph state in localStorage
  • Resume last session

๐Ÿง  Technical Architecture

๐Ÿ”ท Data Models

type NodeType = "pc" | "router" | "switch";

type IPConfig = {
  ip: string;
  subnetMask: string;
  gateway?: string;
};

type RouterInterface = {
  name: string;
  ip: string;
  subnetMask: string;
};

type NetworkNode = {
  id: string;
  type: NodeType;
  config: IPConfig | RouterInterface[];
};

type NetworkEdge = {
  id: string;
  source: string;
  target: string;
};

type Graph = {
  nodes: NetworkNode[];
  edges: NetworkEdge[];
};

๐Ÿง  Validation Logic (High-Level)

  1. Convert graph to adjacency list

  2. Use BFS/DFS to:

    • Check connectivity
    • Find path between nodes
  3. Compare:

    • subnet(ip1) === subnet(ip2)
  4. If different subnet:

    • ensure router exists in path
  5. Validate gateway routing


๐Ÿ–ฅ๏ธ UI/UX Structure

-----------------------------------------
| Sidebar |    Canvas (ReactFlow)       |
| Nodes   |                              |
|---------|------------------------------|
| Challenges Panel | Config Panel        |
-----------------------------------------

๐ŸŽจ UI Components

  • FlowCanvas
  • SidebarNodes
  • NodeConfigPanel
  • ChallengeList
  • ValidationResultPanel

โš™๏ธ Tech Stack

Layer Technology
Framework React + TypeScript
Styling Tailwind CSS
Graph UI React Flow
State Zustand
Storage localStorage

๐Ÿš€ Success Metrics (MVP)

  • User can complete at least 3 challenges

  • Validation system correctly detects:

    • wrong subnet
    • missing router
    • bad gateway
  • UI remains responsive with 20+ nodes


๐Ÿ—บ๏ธ 20-Day Execution Plan

Week 1

  • Canvas + nodes + connections
  • Basic node config panel

Week 2

  • Validation engine
  • Subnet logic
  • Routing logic

Week 3

  • Challenge system
  • UI polish
  • persistence
  • bug fixes

๐Ÿ”ฎ Future Enhancements (Post-MVP)

  • Ping simulation animation
  • Packet flow visualization
  • Firewall rules
  • VLAN support
  • Multi-user collaboration
  • Shareable challenge links

๐Ÿง‘โ€๐Ÿ’ป Why This Project Matters

This project demonstrates:

  • Complex frontend architecture
  • Graph-based UI systems
  • Domain modeling (networking)
  • Validation engines
  • Product thinking

๐Ÿ“Œ Author

Built by a Frontend Engineer passionate about:

  • Visual systems
  • Networking
  • Security learning tools

๐Ÿš€ Goal: Make networking learning as intuitive as drawing a flowchart.

About

A lightweight, browser-based, visual networking lab. Learn networking visually by building, configuring, and validating network topologies in your browser.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages