An interactive, visually stunning educational web application exploring the 7 layers of the OSI Model, Data Link, Network, and Physical layers.
This project transforms traditional, text-heavy networking concepts into an engaging, interactive viewing experience. Built natively with HTML, CSS, and Vanilla JavaScript, it offers deep-dives into the intricacies of Computer Networks—specifically focusing on the OSI Reference Model.
- Interactive Layers View: A beautiful encapsulation animation and animated components that build a visual intuition for how data is structured as it travels the stack.
- Subnetting Calculator: Real-time IPv4 subnet and masking calculator with visual bitwise AND operations.
- Signal Modulation Demos: HTML5 Canvas-based wave drawing functions displaying AM, FM, PM analog modulation alongside NRZ and Manchester digital encoding.
- Shannon & Data Rate Tools: Interactive baud and theoretical limit calculators.
- Knowledge Checks: Built-in dynamic quizzes carefully designed to test retention at the end of each module.
- Glassmorphic UI: Smooth, highly responsive, and meticulously crafted dark-theme aesthetics.
The codebase strictly separates global styling from page-specific concerns:
global.css: Manages design tokens, typography, root variables, generic layout systems, UI components (buttons, nav), and responsive breakpoints.[page_name].css: Responsible for context-specific overrides, animations, and unique color theming per OSI layer.
- OSI Model Overview (
osi_model.html) - Layer 1: Physical Layer (
physical_layer.html) - Layer 2: Data Link Layer (
data_link_layer.html) - Layer 3: Network Layer (
network_layer.html)
Since the project uses vanilla web technologies, running it locally requires zero configuration or build steps.
- Clone the repository:
git clone https://github.com/YacineTechCodes/RC.git
- Open the project:
Simply double-click
osi_model.htmlto open it in your default web browser, or use a local development server like VSCode Live Server.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Developed partially in reference to the Communication Networks syllabus at the NTIC Faculty, University of Constantine 2 (Prof. Nabil Belala · 2025).