|
| 1 | +# DBMS Illustrated |
| 2 | + |
| 3 | +An interactive, animated course on Database Management Systems. Zero frameworks — pure HTML, CSS, and JavaScript, with Three.js (CDN) for the hero animation only. |
| 4 | + |
| 5 | +Live: [sridhar-3009.github.io/DBMS-Course](https://sridhar-3009.github.io/DBMS-Course) |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Topics |
| 10 | + |
| 11 | +| # | Topic | Demo | Color | |
| 12 | +|---|-------|------|-------| |
| 13 | +| 01 | [Introduction to DBMS](topics/01-intro.html) | ER Diagram Builder | `#0EA5E9` | |
| 14 | +| 02 | [Relational Model](topics/02-relational-model.html) | JOIN Visualizer | `#8B5CF6` | |
| 15 | +| 03 | [SQL](topics/03-sql.html) | SQL Query Visualizer | `#10B981` | |
| 16 | +| 04 | [Normalization](topics/04-normalization.html) | 1NF → 2NF → 3NF Animator | `#F59E0B` | |
| 17 | +| 05 | [Transactions & ACID](topics/05-transactions.html) | Isolation Level Simulator | `#EF4444` | |
| 18 | +| 06 | [Indexing](topics/06-indexing.html) | B+ Tree Traversal | `#06B6D4` | |
| 19 | +| 07 | [Query Processing](topics/07-query-processing.html) | Query Plan Tree | `#3B82F6` | |
| 20 | +| 08 | [Concurrency Control](topics/08-concurrency.html) | 2PL Deadlock Detector | `#EC4899` | |
| 21 | +| 09 | [Storage Engines](topics/09-storage-engines.html) | Page/Block Storage | `#F97316` | |
| 22 | +| 10 | [NoSQL Databases](topics/10-nosql.html) | NoSQL Comparison | `#84CC16` | |
| 23 | +| 11 | [Distributed Databases](topics/11-distributed-databases.html) | Raft Consensus Simulation | `#A855F7` | |
| 24 | +| 12 | [Interview Guide](topics/12-interview-guide.html) | Schema Designer | `#14B8A6` | |
| 25 | + |
| 26 | +--- |
| 27 | + |
| 28 | +## Run Locally |
| 29 | + |
| 30 | +```bash |
| 31 | +git clone git@github.com:sridhar-3009/DBMS-Course.git |
| 32 | +cd DBMS-Course |
| 33 | +python3 -m http.server 8080 |
| 34 | +``` |
| 35 | + |
| 36 | +Open [http://localhost:8080](http://localhost:8080). |
| 37 | + |
| 38 | +No build step, no npm install, no dependencies. |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +## File Structure |
| 43 | + |
| 44 | +``` |
| 45 | +DBMS-Course/ |
| 46 | +├── index.html # Home page with Three.js hero + 12-card grid |
| 47 | +├── css/ |
| 48 | +│ └── style.css # Full design system (CSS custom props, dark/light) |
| 49 | +├── js/ |
| 50 | +│ ├── main.js # Theme toggle, scroll progress, quiz, Q&A, Three.js hero |
| 51 | +│ └── demos.js # All 12 Canvas 2D interactive demos |
| 52 | +└── topics/ |
| 53 | + ├── 01-intro.html |
| 54 | + ├── 02-relational-model.html |
| 55 | + ├── 03-sql.html |
| 56 | + ├── 04-normalization.html |
| 57 | + ├── 05-transactions.html |
| 58 | + ├── 06-indexing.html |
| 59 | + ├── 07-query-processing.html |
| 60 | + ├── 08-concurrency.html |
| 61 | + ├── 09-storage-engines.html |
| 62 | + ├── 10-nosql.html |
| 63 | + ├── 11-distributed-databases.html |
| 64 | + └── 12-interview-guide.html |
| 65 | +``` |
| 66 | + |
| 67 | +--- |
| 68 | + |
| 69 | +## Contributing |
| 70 | + |
| 71 | +1. Fork and clone. |
| 72 | +2. Pick a topic page or open a GitHub Issue. |
| 73 | +3. Keep the style: vanilla JS only, Canvas 2D for demos, no npm. |
| 74 | +4. Test with `python3 -m http.server` — no bundler needed. |
| 75 | +5. Open a PR with a screenshot of the demo. |
| 76 | + |
| 77 | +### Code Style |
| 78 | + |
| 79 | +- **No frameworks.** Not React, Vue, Angular, Svelte — nothing. |
| 80 | +- **No npm.** Not even a `package.json`. The only CDN load is Three.js r160 on `index.html`. |
| 81 | +- **Canvas 2D** for all demos via the `mkCanvas()` helper in `demos.js`. |
| 82 | +- **Theme-aware** — all canvas renders call `TC()` for colors; call the render fn on `body[data-theme]` changes. |
| 83 | +- **CSS custom props** — `--topic-color` per page, global design tokens in `:root`. |
| 84 | + |
| 85 | +--- |
| 86 | + |
| 87 | +## Stats |
| 88 | + |
| 89 | +- 12 topics |
| 90 | +- 12 interactive Canvas demos |
| 91 | +- 36+ MCQ quiz questions |
| 92 | +- 60+ Q&A accordion entries |
| 93 | +- 0 npm dependencies |
0 commit comments