Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • JavaScript Documentation48টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • JavaScript কী?
  • Syntax & Comments
  • Variables
  • Data Types: Basics
  • Data Types: Conversion
  • Data Types: Advanced
  • Strings
  • Numbers & Math
  • Date & Time
  • Operators
  • Conditions
  • Loops
  • Functions: Basics
  • Functions: Intermediate
  • Functions: Advanced
  • Scope & Hoisting
  • Closures & this
  • ES6+ Modern
  • Arrays: Basics
  • Arrays: Intermediate
  • Arrays: Advanced
  • Objects: Basics
  • Objects: Intermediate
  • Objects: Advanced
  • Class: Basics
  • Class: Intermediate
  • Class: Advanced
  • DOM: Basics
  • DOM: Intermediate
  • DOM: Advanced
  • Events: Basics
  • Events: Intermediate
  • Events: Advanced
  • Async JavaScript
  • Promise
  • Async / Await
  • Fetch API
  • JSON
  • Modules
  • Browser Storage
  • Event Loop Deep
  • Prototype Chain
  • Iterators & Generators
  • WeakMap, WeakSet, Proxy
  • Error Handling
  • Practice Problems
  • Mini Projects
  • Basics
  • Functions & Scope
  • Types & Syntax
  • Arrays & Objects
  • Advanced
  • Functional Programming
  • Objects & Symbols
  • Async Deep Dive
  • Modern JavaScript
  1. Docs
  2. JavaScript
  3. Projects (মিনি-প্রজেক্ট)
JavaScriptIntermediate

Projects (মিনি-প্রজেক্ট)

প্র্যাকটিক্যাল মিনি-প্রজেক্ট: calculator, todo, quiz, weather — HTML/CSS/JS-এ বানানোর ধাপ বাংলায়।

27টি অংশবাংলা ভাষায়

শেষ ধাপ — হাতে-কলমে। প্রতিটি প্রজেক্ট একটি করে দৈনন্দিন feature জুড়ে প্রতিটি chapter-এর জ্ঞান কাজে দেয়। নিজে বানান, ব্রাউজারে চালান।

১. Calculator

জ্ঞান: event listener, DOM, value প্রসেসিং।

<input id="display" disabled />
<button data-num="7">7</button>
<button data-op="+">+</button>

<script>
  const display = document.getElementById("display");
  let current = "";

  document.addEventListener("click", (e) => {
    const num = e.target.dataset.num;
    const op = e.target.dataset.op;
    if (num) {
      current += num;
      display.value = current;
    }
    if (op) {
      current += op;
      display.value = current;
    }
  });
</script>

একটি সম্পূর্ণ calculator-এ = চাপলে eval না রেখে নিজে parse করা ভালো অথবা explicit নিয়ম। শুরুতে eval-শিক্ষার্থী হিসেবে ঠিক আছে, তবে production-এ নয়।

২. Todo List

জ্ঞান: createElement, storage, delegation, remove।

const form = document.querySelector("#todo-form");
const list = document.getElementById("list");

const todos = JSON.parse(localStorage.getItem("todos") || "[]");

function render() {
  list.innerHTML = "";
  todos.forEach((todo) => {
    const li = document.createElement("li");
    li.textContent = todo.text;
    list.appendChild(li);
  });
  localStorage.setItem("todos", JSON.stringify(todos));
}

form.addEventListener("submit", (e) => {
  e.preventDefault();
  const input = document.querySelector("#input");
  todos.push({ text: input.value });
  input.value = "";
  render();
});

// delete: delegation + data-id
render();

পরে যোগ করুন: data-id দিয়ে delete, status (done/pending), filtering।

৩. Quiz App

জ্ঞান: array/object, user interplay, score।

const questions = [
  { q: "JavaScript-এ কতপ্রকার primitive?", a: 7 },
  { q: "`==` চেয়ে কে ভালো?", a: "===", options: ["==", "===", "একই"] },
];

let score = 0;
let idx = 0;

function showQuestion() {
  const q = questions[idx];
  const container = document.getElementById("quiz");
  container.textContent = q.q;
}

// উত্তর check → score++ → পরের প্রশ্ন
showQuestion();

৪. Weather App

জ্ঞান: fetch, async/await, error handling।

async function getWeather(city) {
  const key = "YOUR_API_KEY";
  const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${key}`;
  try {
    const res = await fetch(url);
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    const data = await res.json();
    return `${data.name}: ${Math.round(data.main.temp - 273.15)}°C`;
  } catch (err) {
    return "লোড ব্যর্থ: " + err.message;
  }
}

// getWeather("Dhaka").then(console.log);

API key নিজের .env-এ, আপাতত কোডে নয়। °C রূপান্তর, loading state — নিজে যোগ করুন।

৫. Toggle Theme — Dark Mode

জ্ঞান: localStorage, classList, storage event।

const toggle = document.getElementById("theme");

function applyTheme(theme) {
  document.documentElement.dataset.theme = theme;
  localStorage.setItem("theme", theme);
}

// প্রথম ভিজিট/আগের থিম
applyTheme(localStorage.getItem("theme") || "light");

toggle.addEventListener("click", () => {
  const current = document.documentElement.dataset.theme;
  applyTheme(current === "dark" ? "light" : "dark");
});

CSS-এ [data-theme="dark"] দিয়ে color arrangement করুন — সরাসরি রং না, CSS variable ভালো।

৬. Progress Bar

জ্ঞান: scroll, requestAnimationFrame।

const bar = document.getElementById("progress");

window.addEventListener("scroll", () => {
  const h = document.documentElement;
  const scrolled = h.scrollTop;
  const total = h.scrollHeight - h.clientHeight;
  bar.style.width = (scrolled / total) * 100 + "%";
});
প্রজেক্টশেখায়
Calculatorevents, DOM
Todostorage, delegation
Quizarray/object, UI state
Weatherfetch, async/error
Dark modestorage, classList
Progressscroll, render
প্রথমে নিজে

একটি বানাতে না পারলেও চিন্তা নেই — ধাপে ধাপে, প্রতিবার ১০ মিনিট। কারও কোড কপি করে সংশোধিত হলেও শেখা।

কোড গঠন

প্রতিটি প্রজেক্টে HTML, CSS, JS — তিনটি ফাইলে আলাদা রাখুন; class-এ শেখা যায় না, প্রজেক্ট-এ শেখা হয়।

পরবর্তী ধাপ

সংঘবদ্ধ: GitHub-এ push, gh-pages/Netlify-এ live — একটি বাস্তব portfolio-র শুরুতেই।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরPractice ProblemsJavaScript ডকুমেন্টেশন হোম
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com