A complete, hands-on journey through JavaScript — from the absolute fundamentals to asynchronous programming and real APIs — built while learning from Bro Code's JavaScript course. This repo contains 75+ topic-wise practice folders and 11 fully working mini/major projects, each committed step by step as the concept was learned.
This repository documents my process of learning JavaScript from scratch: every core concept was practiced in its own folder, and once enough fundamentals were covered, that knowledge was applied to build real, interactive projects — culminating in a full Weather App powered by a live API.
The goal isn't just to finish a course, but to genuinely understand how and why each concept works — which is why every folder here represents a topic that was individually written, tested, and committed to Git.
🔤 Fundamentals
- JavaScript Basics, Variables, Constants
- Arithmetic Operators, Accepting User Input, Type Conversion
- Math Object, Checked Property
🔀 Control Flow
- If Statements, Ternary Operator, Switches
- While Loop, For Loops
- String Methods & String Slicing, Method Chaining
⚙️ Functions & Scope
- Functions, Variable Scope
- Function Expressions, Arrow Functions
- Callback Functions, Callback Hell
📦 Arrays & Iteration
- Arrays, Spread Operator, Rest Parameter
- ForEach, Map, Filter, Reduce
- Sorting, Shuffling Arrays
🧩 Objects & OOP
- Objects,
thisKeyword - Constructors, Classes, Static Keyword
- Inheritance, Super Keyword
- Getters & Setters, Destructuring
- Nested Objects, Arrays of Objects
⏱️ Advanced & Asynchronous JavaScript
- Dates, Closures, setTimeout
- ES6 Modules, Error Handling
- Promises, Async/Await
- JSON, Fetch API
🖱️ DOM Manipulation
- DOM, Element Selectors, DOM Navigation
- Adding & Changing HTML
- Mouse Events, Key Events
- Hide & Show, NodeLists, ClassList
| Project | Description |
|---|---|
| Counter Program | Increment/decrement counter with click events |
| Random Number Generator | Generates random numbers within a user-defined range |
| Temperature Conversion | Converts temperature between Celsius and Fahrenheit |
| Dice Roller | Simulates rolling a dice with a random outcome |
| Random Password Generator | Generates secure, random passwords |
| Digital Clock | Real-time digital clock updated using JavaScript |
| Stopwatch | Start, stop, and reset stopwatch with live timing |
| Calculator | Basic arithmetic calculator (add, subtract, multiply, divide) |
| Rock Paper Scissors | Classic game with score tracking and DOM-based UI updates |
| Image Slider | Auto-playing image carousel with next/previous controls and fade animation |
| 🌤️ Weather App | Fetches live weather data from an external API using fetch and async/await, and displays it dynamically on the page — the capstone project combining DOM, JSON, and API skills learned throughout the course |
Click any project below to try it live — no setup needed:
- 🌦️ Weather App — Real-time weather application using the Fetch API and asynchronous JavaScript
- ✂️ Rock Paper Scissors — Classic game with score tracking and interactive UI
- 🧮 Calculator — Basic arithmetic calculator built with JavaScript
- ⏱️ Stopwatch — Start, stop, and reset stopwatch with live timing
- 🔐 Random Password Generator — Generates secure random passwords
- 🌡️ Temperature Conversion — Converts temperatures between Celsius and Fahrenheit
- 🎲 Dice Roller — Random dice rolling simulator with dynamic UI
- 🎯 Random Number Generator — Generates random numbers within a custom range
- 🔢 Counter Program — Simple increment/decrement counter with DOM manipulation
- 🕐 Digital Clock — Real-time digital clock updated using JavaScript
- 🖼️ Image Slider — Auto-playing image carousel with next/previous controls and fade animation
- JavaScript (ES6+) — core language
- HTML5 & CSS3 — structure and styling for projects
- VS Code — code editor
- Git & GitHub Desktop — version control
- Git Bash — command-line Git operations
Each folder is numbered in the order topics were learned, making it easy to follow the progression from basics to advanced concepts:
01_JavaScript_Basics/
02_Variable/
...
75_WeatherApp_Project/
Project01_07_Counter_Program/
Project02_09_Random_Number_Generator/
...
Every folder contains the practice files for that specific topic, with working code and comments explaining the logic.
Building this repo end-to-end helped me get comfortable with:
- Writing clean, readable JavaScript from scratch
- Debugging real issues (case sensitivity, CSS specificity, scope errors, undefined variables)
- Working with the DOM to build interactive UIs
- Handling asynchronous operations and consuming real-world APIs
- Using Git and GitHub properly — commits, pushes, and version control as a daily habit
To run any project locally:
- Clone the repo:
git clone https://github.com/Kryptonae/JavaScript-Bro-Code.git
- Open the desired project folder in VS Code
- Open
index.htmlin your browser (Live Server extension recommended)
Ashwani Kumar (@Kryptonae)
⭐ If you found this helpful or interesting, feel free to star the repo and follow my progress!