<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Muhammad Ashraful Islam</title>
    <description>The latest articles on Forem by Muhammad Ashraful Islam (@arasruislam).</description>
    <link>https://forem.com/arasruislam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1009684%2F082a1fde-9104-4153-98f6-4fe1ca159897.jpg</url>
      <title>Forem: Muhammad Ashraful Islam</title>
      <link>https://forem.com/arasruislam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arasruislam"/>
    <language>en</language>
    <item>
      <title>Learning SQL the Smart Way: My Docker + VS Code Setup - part 3</title>
      <dc:creator>Muhammad Ashraful Islam</dc:creator>
      <pubDate>Sat, 01 Nov 2025 06:24:11 +0000</pubDate>
      <link>https://forem.com/arasruislam/learning-sql-the-smart-way-my-docker-vs-code-setup-part-3-2kk9</link>
      <guid>https://forem.com/arasruislam/learning-sql-the-smart-way-my-docker-vs-code-setup-part-3-2kk9</guid>
      <description>&lt;p&gt;Part-3: From Code to Table: Running SQL Inside VS Code with Docker&lt;br&gt;
Welcome to the final part of my mini-series - “Learning SQL the Smart Way”&lt;/p&gt;

&lt;p&gt;আগের দুইটা অংশে দেখিয়েছিলাম কিভাবে Docker দিয়ে MySQL container চালানো যায়, আর VS Code থেকে connect করা যায়।&lt;/p&gt;

&lt;p&gt;এখন দেখাবো কিভাবে আমি VS Code থেকেই .sql ফাইল চালিয়ে database তৈরি করলাম, data insert করলাম, আর result দেখলাম। &lt;/p&gt;

&lt;p&gt;Step 1: Create an SQL File&lt;br&gt;
VS Code খুলে একটা নতুন ফাইল তৈরি করুন - Create_database.sql&lt;br&gt;
তারপর নিচের কোডটা পেস্ট করুন - &lt;br&gt;
CREATE DATABASE IF NOT EXISTS university;&lt;/p&gt;

&lt;p&gt;USE university;&lt;/p&gt;

&lt;p&gt;CREATE TABLE students (&lt;br&gt;
  id INT AUTO_INCREMENT PRIMARY KEY,&lt;br&gt;
  name VARCHAR(50),&lt;br&gt;
  department VARCHAR(50),&lt;br&gt;
  gpa DECIMAL(3,2)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;INSERT INTO students (name, department, gpa)&lt;br&gt;
VALUES&lt;br&gt;
('Arafat', 'CSE', 3.85),&lt;br&gt;
('Nabila', 'EEE', 3.70),&lt;br&gt;
('Rafiul', 'BBA', 3.92);&lt;/p&gt;

&lt;p&gt;SELECT * FROM students;&lt;/p&gt;

&lt;p&gt;Tip: প্রথমে এমন একটা simple database তৈরি করাই ভালো — এতে CREATE, INSERT, আর SELECT একসাথে প্র্যাকটিস করা যায়।&lt;br&gt;
Step 2: Run SQL Queries Directly from VS Code&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;.sql ফাইলটা ওপেন রাখুন&lt;/li&gt;
&lt;li&gt;এরপর Cmd + E → Cmd + E (Mac) অথবা Ctrl + E → Ctrl + E (Windows) চাপুন&lt;/li&gt;
&lt;li&gt;নিচে একটা সুন্দর Result Grid খুলে যাবে, যেখানে query result একদম neat table আকারে দেখা যাবে। &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;দেখলেন? সবকিছুই এখন VS Code এর ভেতরে কোনো আলাদা MySQL client লাগবে না। &lt;/p&gt;

&lt;p&gt;Step 3: Preview Tables Without Running Queries&lt;br&gt;
অনেক সময় আমি শুধু table data দেখতে চাই, query না চালিয়েই।&lt;br&gt;
SQLTools দিয়ে এটাও সম্ভব -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQLTools Sidebar খুলুন&lt;/li&gt;
&lt;li&gt;Expand → Local MySQL → university → Tables&lt;/li&gt;
&lt;li&gt;Right-click on students → Show Table Records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;তারপর নিচে grid খুলে পুরো table data দেখা যাবে — pure magic!&lt;/p&gt;

&lt;p&gt;Step 4: Stop or Restart the Container&lt;br&gt;
সব বন্ধ করতে চাইলে - docker compose down&lt;br&gt;
আবার চালু করতে চাইলে - docker compose up -d&lt;/p&gt;

&lt;p&gt;আর data যেন delete না হয়, তার জন্য docker-compose.yml এ নিচের line টা রাখবেন - &lt;br&gt;
volumes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;./mysql_data:/var/lib/mysql&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 5: Why This Setup Is Amazing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean, isolated, beginner-friendly environment&lt;/li&gt;
&lt;li&gt;কোনো system-level installation ঝামেলা নেই।&lt;/li&gt;
&lt;li&gt;Practice, learning, demo সবকিছুর জন্য perfect&lt;/li&gt;
&lt;li&gt;এক command দিয়েই পুরো setup ready: docker compose up -d&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Honestly, Docker + VS Code combo টা একদম perfect learning ecosystem.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
এই ছোট্ট ৩ পর্বের যাত্রাটা আমার জন্য একদম নতুন এক experience ছিল।&lt;/p&gt;

&lt;p&gt;পুরনো একটা ল্যাপটপ, একটু কৌতূহল, আর কিছুটা একগুঁয়েমি এই তিনটা জিনিস মিলেই তৈরি হলো আমার নিজের SQL playground.&lt;/p&gt;

&lt;p&gt;এই প্রক্রিয়ায় আমি শুধু Docker বা VS Code শিখিনি বরং শিখেছি কিভাবে একটু অন্যভাবে চিন্তা করতে হয়।&lt;/p&gt;

&lt;p&gt;যখন কিছু কাজ করে না, তখন হাল ছেড়ে না দিয়ে, “আর কোনো উপায় আছে কি?” এই প্রশ্নটাই আসলে নতুন দরজা খুলে দেয়।&lt;br&gt;
পুরো setupটা বানাতে গিয়ে বুঝেছি - &lt;br&gt;
 🔹 simplicity মানে shortcut না, বরং একটা clean system তৈরি করা।&lt;br&gt;
 🔹 learning মানে শুধু syntax না, বরং নিজের জন্য একটা comfortable environment তৈরি করা।&lt;br&gt;
 🔹 আর পুরনো ডিভাইস মানেই limitation না  এটা অনেক সময় creativity-র সবচেয়ে বড় কারণ হয়ে দাঁড়ায়।&lt;/p&gt;

&lt;p&gt;Docker + VS Code combo টা আমার কাছে এখন একধরনের perfect learning zone&lt;br&gt;
 clean, portable, আর একদম আমার মতো!&lt;/p&gt;

&lt;p&gt;যারা SQL শেখা শুরু করতে চাচ্ছেন, তাদের বলব একবার এই setup টা try করে দেখতে পারেন। &lt;/p&gt;

&lt;p&gt;আমি পুরো setup process লিখে রেখেছি আমার GitHub repo তে। চাইলে এখান থেকে দেখে নিতে পারেন - &lt;a href="https://github.com/arasruislam/Learn_Stack/blob/master/SQL/SQL_GUIDE.md" rel="noopener noreferrer"&gt;https://github.com/arasruislam/Learn_Stack/blob/master/SQL/SQL_GUIDE.md&lt;/a&gt; &lt;/p&gt;

</description>
      <category>docker</category>
      <category>programming</category>
      <category>webdev</category>
      <category>mysql</category>
    </item>
    <item>
      <title>Learn SQL the Smart Way: My Complete Dev Setup in Docker &amp; VS Code - Part 2</title>
      <dc:creator>Muhammad Ashraful Islam</dc:creator>
      <pubDate>Sat, 01 Nov 2025 04:59:44 +0000</pubDate>
      <link>https://forem.com/arasruislam/learn-sql-the-smart-way-my-complete-dev-setup-in-docker-vs-code-part-2-48gg</link>
      <guid>https://forem.com/arasruislam/learn-sql-the-smart-way-my-complete-dev-setup-in-docker-vs-code-part-2-48gg</guid>
      <description>&lt;p&gt;Part-2: How I Actually Ran MySQL Inside a Docker Container&lt;/p&gt;

&lt;p&gt;Last time (Part 1) আমি বলেছিলাম কেন Docker দিয়ে MySQL চালাতে চাচ্ছি, সেই setup টা পুরো করে ফেললাম। &lt;/p&gt;

&lt;p&gt;If you’ve never tried running a database inside Docker before, trust me, it’s way easier than it sounds.&lt;/p&gt;

&lt;p&gt;Step 1: Create a Project Folder&lt;br&gt;
প্রথমে একটা নতুন ফোল্ডার তৈরি করুন, যেখানে MySQL project আর container data থাকবে।&lt;/p&gt;

&lt;p&gt;mkdir ~/sql/my-sql-name&lt;br&gt;&lt;br&gt;
cd ~/sql/my-sql-name&lt;/p&gt;

&lt;p&gt;এই ফোল্ডারটাই হবে আপনার local workspace যেখানে Docker container এবং SQL ফাইল দুটোই থাকবে।&lt;/p&gt;

&lt;p&gt;Step 2: Make a docker-compose.yml File&lt;br&gt;
এবার ওই ফোল্ডারের ভিতর একটা ফাইল বানান docker-compose.yml, এবং নিচের কোডটা পেস্ট করুন - &lt;/p&gt;

&lt;p&gt;services:&lt;/p&gt;

&lt;p&gt;mysql:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;image: mysql:latest

container_name: sql_practice

restart: always

environment:

  MYSQL_ROOT_PASSWORD: root123

  MYSQL_DATABASE: study

ports:

  - "3306:3306"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Explanation:&lt;/p&gt;

&lt;p&gt;image: mysql:latest → pulls the latest official MySQL image&lt;br&gt;
MYSQL_ROOT_PASSWORD → আপনার root password&lt;br&gt;
MYSQL_DATABASE → automatically creates a starter database named study&lt;br&gt;
ports → maps MySQL’s port 3306 from the container to your local system&lt;/p&gt;

&lt;p&gt;যদি চান data যেন container delete করার পরেও থেকে যায়, তাহলে নিচের অংশটা যোগ করুন - &lt;br&gt;
volumes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;./mysql_data:/var/lib/mysql&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;এতে আপনার database data লোকাল ফোল্ডারে (mysql_data) সেভ থাকবে।&lt;/p&gt;

&lt;p&gt;Step 3: Run the Container&lt;/p&gt;

&lt;p&gt;এখন Terminal এ লিখুন - docker compose up -d&lt;br&gt;
এটা MySQL container টাকে detached mode এ চালাবে।&lt;/p&gt;

&lt;p&gt;চেক করতে সব ঠিকঠাক চলছে কি না, রান করুন - docker ps&lt;/p&gt;

&lt;p&gt;আপনি এমন কিছু দেখতে পাবেন:&lt;/p&gt;

&lt;p&gt;CONTAINER ID   IMAGE          STATUS         PORTS&lt;br&gt;
abcd1234efgh   mysql:latest   Up 5 seconds   0.0.0.0:3306-&amp;gt;3306/tcp&lt;/p&gt;

&lt;p&gt;Boom! এখন আপনার MySQL Docker container এর ভিতর পুরোপুরি চলছে!&lt;/p&gt;

&lt;p&gt;Step 4: Connect MySQL with VS Code&lt;br&gt;
এখন VS Code খুলে নিচের ধাপগুলো করো - &lt;br&gt;
1️⃣ Install: SQLTools extension&lt;br&gt;
2️⃣ Install: SQLTools MySQL/MariaDB Driver&lt;br&gt;
3️⃣ Open Command Palette (Cmd + Shift + P / Ctrl + Shift + P) → search SQLTools: New Connection&lt;br&gt;
4️⃣ Select MySQL/MariaDB&lt;/p&gt;

&lt;p&gt;তারপর নিচের ফর্মটা পূরণ করো :&lt;br&gt;
Name:   Local MySQL (Docker)&lt;br&gt;
Server / Host: 127.0.0.1&lt;br&gt;
Port: 3306&lt;br&gt;
Database: study&lt;br&gt;
Username: root&lt;br&gt;
Password: root123&lt;/p&gt;

&lt;p&gt;Click Test Connection → Connection Success!&lt;br&gt;
Then click Save Connection &lt;/p&gt;

&lt;p&gt;Quick Recap&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A fully functional MySQL container running inside Docker&lt;/li&gt;
&lt;li&gt;Direct connection from VS Code&lt;/li&gt;
&lt;li&gt;A clean, isolated learning environment — no messy installations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next Part (Part 3):&lt;br&gt;
আমি দেখাবো কীভাবে .sql ফাইল তৈরি করে VS Code থেকেই query চালানো যায়, result table দেখা যায়, আর database preview করা যায। &lt;/p&gt;

&lt;p&gt;আমি পুরো setup process লিখে রেখেছি আমার GitHub repo তে। চাইলে এখান থেকে দেখে নিতে পারেন - &lt;a href="https://github.com/arasruislam/Learn_Stack/blob/master/SQL/SQL_GUIDE.md" rel="noopener noreferrer"&gt;https://github.com/arasruislam/Learn_Stack/blob/master/SQL/SQL_GUIDE.md&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;়&lt;/p&gt;

</description>
      <category>programming</category>
      <category>docker</category>
      <category>mysql</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Learn SQL the Smart Way: My Complete Dev Setup in Docker &amp; VS Code - Part 1</title>
      <dc:creator>Muhammad Ashraful Islam</dc:creator>
      <pubDate>Sat, 01 Nov 2025 03:44:48 +0000</pubDate>
      <link>https://forem.com/arasruislam/learn-sql-the-smart-way-my-complete-dev-setup-in-docker-vs-code-1mod</link>
      <guid>https://forem.com/arasruislam/learn-sql-the-smart-way-my-complete-dev-setup-in-docker-vs-code-1mod</guid>
      <description>&lt;p&gt;Part-1: Why &amp;amp; What I Built?&lt;br&gt;
আজকে SQL শেখা শুরু করলাম একটু অন্যভাবে আর এইবারটা ছিল pure curiosity থেকে করা একটা experiment 😄&lt;/p&gt;

&lt;p&gt;সবকিছু শুরু হয়েছিল আমারপুরনো ম্যাকবুক (MacBook Pro 2017, Ventura 13) নিয়ে ছোট্ট এক সমস্যায়ভার্সিটিতে সবাই MySQL Workbench দিয়ে প্র্যাকটিস করছিল, কিন্তু আমার ল্যাপটপে ওটা একদমই install হচ্ছিল না।&lt;/p&gt;

&lt;p&gt;একবার চেষ্টা করলাম Homebrew দিয়ে কিন্তু brew download শেষই হতে চায় না। Dependency-এর পর dependency! শেষে দেখি আমার macOS ভার্সনের সঙ্গে brew-এর নতুন package গুলো ঠিকমতো compatible না।&lt;/p&gt;

&lt;p&gt;সেদিন honestly, মাথা একটু গরম হয়েছিল 😅 &lt;br&gt;
ভাবছিলাম “সবাই পারছে, আমিই কি শুধু পারছি না ?”&lt;br&gt;
একটা frustration, কিন্তু curiosity ও ছিল আর কোনো উপায় কি নেই?&lt;/p&gt;

&lt;p&gt;কিন্তু এখানেই আসল twist হাল না ছেড়ে search শুরু করলাম।&lt;/p&gt;

&lt;p&gt;তারপর হঠাৎ মাথায় অসলো Docker কথা! 🐋&lt;/p&gt;

&lt;p&gt;ভাবলাম, “যদি database টা আলাদা একটা container এ চালানো যায়, তাহলে system নোংরা হবে না, কিছু install/uninstall করতেও হবে না।”&lt;/p&gt;

&lt;p&gt;তখনই শুরু হলো আসল adventure।&lt;/p&gt;

&lt;p&gt;Docker install করতে গিয়েও আরেকটা বাঁধা নতুন version (4.49) আমার MacBook support করে না! অনেক খোঁজাখুঁজির পর পেয়ে গেলাম পুরনো stable version Docker 4.47 যা আমার system-এর সঙ্গে একদম perfectly কাজ করছিলো।&lt;/p&gt;

&lt;p&gt;Docker install করার পর ভাবলাম, এবার MySQL container এ চালাই clean, isolated, no mess setup. আমি এমন একটা system চাইছিলাম যেখানে আমার data, container, আর code তিনটা জিনিস আলাদা থাকবে। যেহেতু আমি তো শুধু শেখার জন্য করছি, তাই data persist না থাকলেই ভালো প্রতিবার fresh start!&lt;/p&gt;

&lt;p&gt;তারপর ধীরে ধীরে পুরো setup টা বানালাম নিজের মতো করে: &lt;br&gt;
🐋 Docker Desktop&lt;br&gt;
💻 VS Code&lt;br&gt;
⚙️ SQLTools + MySQL/MariaDB Driver Extension&lt;/p&gt;

&lt;p&gt;এখন আমি শুধু docker compose up দিই, আর database এক মুহূর্তেই তৈরি হয়ে যায়।&lt;br&gt;
No installation hassle, no clutter, clean and portable workspace ঠিক যেমনটা আমি চেয়েছিলা। &lt;/p&gt;

&lt;p&gt;সবচেয়ে satisfying মুহূর্ত ছিল যখন প্রথমবার VS Code থেকে SQL query রান করলাম। পুরনো device হলেও, সেই মুহূর্তে মনে হচ্ছিল “আমি পেরেছি!”&lt;/p&gt;

&lt;p&gt;Next part এ দেখাবো কিভাবে আমি docker-compose.yml ফাইল বানিয়েছি এবং কীভাবে VS Code থেকেই MySQL চালানো যায়।&lt;/p&gt;

&lt;p&gt;আমি পুরো setup process লিখে রেখেছি আমার GitHub repo তে। চাইলে এখান থেকে দেখে নিতে পারেন।&lt;br&gt;
&lt;a href="https://github.com/arasruislam/Learn_Stack/blob/master/SQL/SQL_GUIDE.md" rel="noopener noreferrer"&gt;https://github.com/arasruislam/Learn_Stack/blob/master/SQL/SQL_GUIDE.md&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3w03d8sccvtkgdcgwcue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3w03d8sccvtkgdcgwcue.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>occeanlabltd</category>
      <category>docker</category>
      <category>mysql</category>
    </item>
    <item>
      <title>MVC vs Modular MVC - Which One Should You Choose?</title>
      <dc:creator>Muhammad Ashraful Islam</dc:creator>
      <pubDate>Sat, 06 Sep 2025 12:53:51 +0000</pubDate>
      <link>https://forem.com/arasruislam/mvc-vs-modular-mvc-which-one-should-you-choose-269o</link>
      <guid>https://forem.com/arasruislam/mvc-vs-modular-mvc-which-one-should-you-choose-269o</guid>
      <description>&lt;p&gt;As a developer, we often face a common question:&lt;br&gt;
 👉 Should I stick to MVC or move towards Modular MVC (HMVC)?&lt;br&gt;
Let’s break this down in a simple way with real-life examples.&lt;/p&gt;

&lt;p&gt;✨ Why MVC?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fue65yu2y02aauj6k09q4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fue65yu2y02aauj6k09q4.jpeg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
🔹 What is MVC and How it Works?&lt;br&gt;
MVC means Model – View – Controller.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model → Data &amp;amp; Business logic (example: Database structure)&lt;/li&gt;
&lt;li&gt;View → Traditionally HTML templates (UI)&lt;/li&gt;
&lt;li&gt;Controller → Request/Response handling (connects Model &amp;amp; View)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 Imagine you are building a small restaurant management system.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model = Menu Items (stored in DB)&lt;/li&gt;
&lt;li&gt;View = Menu page UI&lt;/li&gt;
&lt;li&gt;Controller = When user clicks on “Order”, controller fetches data from Model &amp;amp; shows in View&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 Benefits of MVC&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear separation of concerns (Data, UI, Logic)&lt;/li&gt;
&lt;li&gt;Easy for beginners &amp;amp; small teams&lt;/li&gt;
&lt;li&gt;Faster to implement for small projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 Backdrops (Limitations)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Controllers become too big (“God Controller” problem)&lt;/li&gt;
&lt;li&gt;Hard to maintain in large projects&lt;/li&gt;
&lt;li&gt;Not team-friendly when many developers work together&lt;/li&gt;
&lt;li&gt;Traditional View layer is outdated for modern frontend needs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✨ Why Modular MVC (HMVC)?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdvnlpzv1bcv7arf0jdwm.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdvnlpzv1bcv7arf0jdwm.jpeg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
🔹 What is Modular MVC and How it Works?&lt;br&gt;
Modular MVC (HMVC) is an extension of MVC.&lt;br&gt;
 👉 Instead of one big MVC structure, we break the project into modules.&lt;br&gt;
 Each module has its own MVC.&lt;/p&gt;

&lt;p&gt;🔹 Example: You are building an Online Library System.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accounts Module → user login, profile&lt;/li&gt;
&lt;li&gt;Books Module → book details, borrowing system&lt;/li&gt;
&lt;li&gt;Reviews Module → user feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each module follows MVC independently, but connects to a core system.&lt;/p&gt;

&lt;p&gt;🔹 Benefits of Modular MVC&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highly maintainable (each module is independent)&lt;/li&gt;
&lt;li&gt;Perfect for large/complex systems&lt;/li&gt;
&lt;li&gt;Multiple developers can work simultaneously (team-friendly)&lt;/li&gt;
&lt;li&gt;Easier to scale &amp;amp; debug&lt;/li&gt;
&lt;li&gt;Works seamlessly with modern frontend (React, Vue, Angular) when backend provides APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 Backdrops (Limitations)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More initial setup compared to simple MVC&lt;/li&gt;
&lt;li&gt;Slightly complex structure for beginners&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚡But in Modern Web Development&lt;br&gt;
Today’s development flow is a bit different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend (MVC or Modular MVC) → Focuses on Models + Controllers only, and mostly provides REST or GraphQL APIs.&lt;/li&gt;
&lt;li&gt;Frontend (React, Vue, Angular) → Handles the View layer completely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 Example: In StudySphere project, backend (Django Rest Framework) works as API provider, and React/Vue manages the UI.&lt;/p&gt;

&lt;p&gt;So in practice, the “V” in MVC is no longer server-rendered templates; it’s often a separate frontend application.&lt;/p&gt;

&lt;p&gt;⚡ When to Use Which?&lt;br&gt;
Use MVC →&lt;br&gt;
 If your project is small or medium (like a To-do app, blog site, portfolio, or small e-commerce).&lt;br&gt;
 👉 Example: A Personal Portfolio Website → MVC is enough.&lt;/p&gt;

&lt;p&gt;Use Modular MVC (HMVC) →&lt;br&gt;
 If your project is large, multi-featured, or needs scaling in future.&lt;br&gt;
 👉 Example: StudySphere (Tuition Media Platform) or Library Management System → Modular MVC is the better choice.&lt;/p&gt;

&lt;p&gt;💡Follow for more insights:&lt;br&gt;
If you enjoyed this article, follow me on Dev.to for more posts on Web Development, MVC, Modular MVC, Backend &amp;amp; Frontend best practices, and scalable projects.&lt;/p&gt;

&lt;p&gt;🔗 Connect with me: &lt;br&gt;
&lt;a href="https://www.linkedin.com/in/arasruislam/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/arasruislam" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>modularmvc</category>
      <category>mvc</category>
      <category>programming</category>
      <category>backenddevelopment</category>
    </item>
  </channel>
</rss>
