|
| 1 | +# System Design Illustrated |
| 2 | + |
| 3 | +An interactive, animated course covering 12 core system design topics — built with pure HTML, CSS, and JavaScript. No frameworks. No build step. Just open a browser. |
| 4 | + |
| 5 | +**Live site → https://sridhar-3009.github.io/System-Design-Course/** |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## What's inside |
| 10 | + |
| 11 | +| # | Topic | Interactive Demo | |
| 12 | +|---|-------|-----------------| |
| 13 | +| 01 | Fundamentals of Scale | Scaling Simulator | |
| 14 | +| 02 | CAP Theorem | Partition Simulator | |
| 15 | +| 03 | Consistency & Availability Patterns | Consistency Model Visualiser | |
| 16 | +| 04 | DNS & CDN | CDN Edge Cache Routing | |
| 17 | +| 05 | Load Balancers & Reverse Proxies | Load Balancer Strategies | |
| 18 | +| 06 | Caching | Cache Hit/Miss Visualiser | |
| 19 | +| 07 | Databases Deep Dive | Replication Modes | |
| 20 | +| 08 | Async Processing & Messaging | Message Queue Producer/Consumer | |
| 21 | +| 09 | Communication Protocols | REST vs WebSocket Overhead | |
| 22 | +| 10 | Microservices Architecture | Circuit Breaker Simulator | |
| 23 | +| 11 | Security Essentials | Rate Limiter | |
| 24 | +| 12 | Interview Guide | Back-of-Envelope Estimator | |
| 25 | + |
| 26 | +Each topic includes: concept breakdown, diagrams, live quiz, Q&A accordion, anti-patterns, and a Canvas-based interactive demo. |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## Run locally |
| 31 | + |
| 32 | +```bash |
| 33 | +git clone https://github.com/sridhar-3009/System-Design-Course.git |
| 34 | +cd System-Design-Course |
| 35 | +python3 -m http.server 8080 |
| 36 | +# open http://localhost:8080 |
| 37 | +``` |
| 38 | + |
| 39 | +No npm, no build, no dependencies (Three.js loads from CDN for the hero animation). |
| 40 | + |
| 41 | +--- |
| 42 | + |
| 43 | +## Contributing |
| 44 | + |
| 45 | +Contributions are welcome. Here are areas where help is most valuable: |
| 46 | + |
| 47 | +### Good first issues |
| 48 | +- Fix typos or improve explanations in any topic HTML |
| 49 | +- Add a missing real-world company example to a topic |
| 50 | +- Improve mobile layout on a specific page |
| 51 | +- Add a new quiz question to a topic |
| 52 | + |
| 53 | +### Bigger contributions |
| 54 | +- **New interactive demo** — each topic has a `#demo-*` div; add a Canvas 2D demo following the pattern in `js/demos.js` |
| 55 | +- **New topic** — create a new `topics/NN-topic-name.html` following the structure of an existing page |
| 56 | +- **Accessibility** — improve ARIA labels, keyboard navigation, contrast ratios |
| 57 | +- **Performance** — the hero Three.js scene can be optimised for low-end devices |
| 58 | + |
| 59 | +### How to contribute |
| 60 | + |
| 61 | +1. Fork the repo |
| 62 | +2. Create a branch: `git checkout -b feature/your-improvement` |
| 63 | +3. Make changes — run locally with `python3 -m http.server` to test |
| 64 | +4. Open a pull request with a short description of what changed and why |
| 65 | + |
| 66 | +### Code style |
| 67 | +- Vanilla HTML/CSS/JS only — no frameworks, no build step |
| 68 | +- Canvas demos live in `js/demos.js` as self-contained `init*()` functions |
| 69 | +- CSS custom properties for theming (`--primary`, `--topic-color`, etc.) |
| 70 | +- Dark-first theme; light mode via `[data-theme="light"]` overrides |
| 71 | + |
| 72 | +### What not to add |
| 73 | +- npm dependencies or a build pipeline |
| 74 | +- Framework rewrites (React, Vue, etc.) |
| 75 | +- AI-generated content that hasn't been fact-checked |
| 76 | + |
| 77 | +--- |
| 78 | + |
| 79 | +## Structure |
| 80 | + |
| 81 | +``` |
| 82 | +/ |
| 83 | +├── index.html # Course home + 3D hero (Three.js) |
| 84 | +├── css/style.css # All styles — dark theme, components, demos |
| 85 | +├── js/ |
| 86 | +│ ├── main.js # Theme, quiz, Q&A, 3D hero animation |
| 87 | +│ └── demos.js # 12 interactive Canvas demos |
| 88 | +└── topics/ |
| 89 | + ├── 01-fundamentals.html |
| 90 | + ├── 02-cap-theorem.html |
| 91 | + └── ... (12 total) |
| 92 | +``` |
| 93 | + |
| 94 | +--- |
| 95 | + |
| 96 | +## License |
| 97 | + |
| 98 | +MIT — free to use, fork, and build on. |
0 commit comments