A static, browser-based JavaScript learning platform and portfolio of interactive demo projects. The repository contains Arabic RTL lesson pages, a responsive landing page, project showcase pages, and several small browser experiments built with plain HTML, CSS, and JavaScript.
JS Guide is an educational website for learning JavaScript from fundamentals to more advanced topics. It is not a framework app or full React/Vite project; it is a lightweight static site composed of HTML pages, targeted CSS files, and vanilla JavaScript modules.
The project includes:
- Lesson and concept pages for JavaScript fundamentals
- Interactive code examples and notification-based demos
- A project gallery page with embedded preview iframes
- Several UX experiments such as 3D scenes, animations, and interactive product-style layouts
- A floating assistant panel for page navigation and simple JavaScript playground interactions
- Arabic-language learning content with RTL layout
- Homepage with navigation and introductory content
- Lesson pages covering JavaScript basics and advanced function topics
- Interactive examples using browser notifications, console logging, and UI demos
- Local page search and section navigation support in the floating assistant UI
- JavaScript playground panel for running custom snippets in-browser
- Projects showcase page with embedded previews for multiple mini-experiments
- Responsive navigation for smaller screens
- No build step required for the front-end experience
js-guide/
├── .gitignore
├── AUDIT_REPORT_EDUCATIONAL_COMMENTS.md
├── MONSTER_LEVEL_RESTYLING_REPORT.md
├── README.md
├── index.html
├── package.json
├── package-lock.json
├── assets/
│ └── images/
│ └── favicon.png
├── css/
│ ├── advancd.css
│ ├── basics.css
│ ├── compiler.css
│ ├── monsterLevel.css
│ ├── navigation.css
│ ├── projects.css
│ └── style.css
├── js/
│ ├── compiler.js
│ ├── level.js
│ ├── main.js
│ ├── particles.js
│ └── server.js
├── pages/
│ ├── advanced.html
│ ├── basics.html
│ ├── compiler.html
│ ├── monsterLevel.html
│ └── Projects/
│ ├── projects.html
│ ├── fish/
│ │ ├── fish.css
│ │ ├── fish.html
│ │ └── fish.js
│ ├── professionalism/
│ │ ├── professionalism.css
│ │ ├── professionalism.html
│ │ └── professionalism.js
│ ├── sales/
│ │ ├── sales.css
│ │ ├── sales.html
│ │ └── sales.js
│ ├── simple_3d/
│ │ ├── simple_3d.css
│ │ ├── simple_3d.html
│ │ └── simple_3d.js
│ ├── space_globe/
│ │ ├── space_globe.css
│ │ ├── space_globe.html
│ │ └── space_globe.js
│ └── walks/
│ ├── walks.css
│ ├── walks.html
│ └── walks.js
└── node_modules/
node_modulesis present because dependencies were installed locally and is not part of the source design itself.
index.htmlis the landing page for the course.- It includes the site nav, a hero/header section, a start button, social links, a particle background, and the floating assistant UI.
pages/basics.htmlcontains introductory JavaScript learning content in Arabic.pages/advanced.htmlcovers functions, arguments, return values, and more advanced explanations.pages/monsterLevel.htmlfocuses on arrays and advanced conceptual breakdowns.pages/compiler.htmlis a minimal HTML shell for the browser compiler/panel experience.
pages/Projects/projects.htmlrenders a gallery of interactive JavaScript project previews.- Each card contains a project summary and an embedded iframe for the related demo.
- The project list includes Fish, Professionalism, Sales, Simple 3D, Space Globe, and Walks.
Each task under pages/Projects/* is a standalone browser demo and uses its own CSS and JavaScript:
fish– a Three.js-based animated fish/scene experimentprofessionalism– SVG-driven artistic motion compositionsales– ecommerce/product slider conceptsimple_3d– layered depth card hover effectspace_globe– 3D globe/scene demowalks– CSS animation character study
The project uses the following technologies that are actually present in the repository:
- HTML5
- CSS3
- Vanilla JavaScript
- Node.js with Express (for the optional API server in
js/server.js) - OpenAI SDK (
openai) for the server-side chat API dotenvfor environment configuration- Three.js loaded via CDN in several project pages
particles.jsloaded via CDN on the homepage- Boxicons and Google Fonts loaded via CDN
This project is a static multi-page educational site with a few interactive modules layered on top of plain HTML/CSS/JS.
Main architectural patterns:
- Shared site styling is organized in
css/style.css,css/navigation.css, andcss/compiler.css. - Page-specific styling is separated into files like
css/basics.css,css/monsterLevel.css, andcss/projects.css. - Shared behavior is handled in
js/main.js, which manages the mobile menu and active nav highlighting. js/compiler.jscontains the floating assistant UI, local search, page section navigation, and a small in-browser JS playground.js/particles.jsconfigures the homepage particle background.js/level.jsadds reveal-on-scroll behavior for lesson sections.js/server.jsis a separate Express server that exposes a chat endpoint using the OpenAI API, but it is not the primary front-end runtime for the educational site.
js/main.js handles:
- mobile navigation menu toggling
- active nav state based on the current page
- code syntax highlighting for lesson code blocks
- notifications and messages for educational interactions
- route transitions from the home page start button
js/compiler.js includes a floating action button (FAB) UI with:
- AI chat panel
- JS compiler/playground panel
- About panel
- section navigation panel for the current page
- local search across predefined pages
- scroll-to-section behavior for lesson content
js/level.jsadds reveal animations for sections as they enter the viewport.particles.jsadds the animated particles background used on the homepage.- Project pages use their own scripts and libraries such as Three.js and custom animation logic.
The project uses CSS files organized by section rather than a component framework.
Examples:
css/style.csscontains the general landing-page layout and shared styling.css/navigation.csshandles the navigation bar and mobile menu behavior.css/basics.cssandcss/monsterLevel.cssimplement lesson-page presentation and animations.css/projects.cssstyles the project gallery layout and card-based preview experience.css/compiler.cssstyles the floating developer assistant and code terminal UI.
The site is responsive by design and includes mobile-friendly menu behavior through CSS media queries and JavaScript toggling.
The asset directory is minimal and currently contains:
assets/images/favicon.png– site favicon
The project also loads external media from public CDNs, including:
- Google Fonts
- Boxicons
- particles.js CDN
- Three.js CDN
- several remote images used by the project demos
The project dependencies are defined in package.json:
{
"dependencies": {
"cors": "^2.8.6",
"express": "^5.2.1",
"node-fetch": "^3.3.2"
}
}These dependencies support the optional server-side API route; the front-end itself primarily runs as static HTML, CSS, and JS files.
Because the project is mostly static front-end content, installation is simple:
- Clone the repository.
- Open the project root in a terminal.
- Ensure Node.js is installed.
- Install dependencies:
npm installThe main educational site is a static site and can be served from the repository root with any local static web server.
Example:
cd "D:\HTML R\js-guide"
python -m http.server 8000Then open:
http://localhost:8000
For the backend API scaffold:
node js/server.jsThis server reads OPENAI_API_KEY from the environment and exposes an /api/chat endpoint.
- Open the site in a browser to browse JavaScript lessons.
- Use the navigation to move between the home page, basics, advanced lessons, and the projects gallery.
- Explore the embedded demo pages for interactive examples.
- Use the floating assistant panel to search sections and run small JavaScript snippets.
- Visit the project gallery to preview the different mini-applications.
This project is designed for modern browsers that support:
- ES6+ JavaScript
- CSS Grid and Flexbox
IntersectionObserver- standard DOM APIs
Because it relies on browser-side JavaScript, compatibility is best with current Chrome, Edge, Firefox, and Safari versions.
There is no formal deployment pipeline or hosting configuration in the repository. The site is effectively a static front-end project and can be deployed to any static host or web server that serves the root folder.
Examples include:
- GitHub Pages
- Netlify
- Vercel static hosting
- any Node/Express or simple HTTP server environment
The optional Express API is separate and requires environment configuration for OpenAI access.
- The project is intentionally plain HTML/CSS/JS and does not use a framework.
- Most content is authored in Arabic and uses RTL conventions.
- Several pages use CDN-loaded libraries rather than bundled local dependencies.
- The layout is static and educational rather than a production SaaS app.
- There is no build tool, bundler, or modern package script for front-end compilation.
- There is no automated test suite configured in
package.json. - The
testscript is only a placeholder and currently exits with an error. - The OpenAI-powered server is optional and not configured as part of the main static site flow.
- No environment example file (
.env.example) or deployment configuration is provided in the repository. - Some project demos rely on external CDN resources and remote image sources.
Contributions are welcome if they remain consistent with the project’s educational goal and do not remove the existing design intent.
Recommended workflow:
- Fork the repository.
- Create a feature branch.
- Make your changes in the relevant HTML/CSS/JS files.
- Validate the affected pages locally in a browser.
- Submit a pull request with a short summary of the change.
This project declares the ISC license in package.json.
ISC
JS Guide is a practical, browser-based JavaScript learning portal and demo collection. It combines educational lesson pages, a responsive navigation structure, a floating assistive UI, and several interactive visual experiments in a lightweight static site architecture without a modern framework.
It is best understood as a curated educational code playground for JavaScript concepts and browser experimentation, rather than a production backend application.