> For the complete documentation index, see [llms.txt](https://django.howtocode.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://django.howtocode.dev/introduction_to_app_and_project.md).

# অ্যাপস কি? প্রোজেক্ট এবং অ্যাপস এর পার্থক্য!

জ্যাঙ্গোতে বিগিনারদের কনফিউশনের কয়েকটি বিষয়ের একটি হল জ্যাঙ্গো প্রোজেক্ট এবং অ্যাপস এর পার্থক্য! যদিও বিষয়টি খুব সহজ, কিন্তু নতুন অনেকের কাছে এটা অদ্ভুত লাগে বিধায় এ নিয়ে একট আলোচনা করছি।

## প্রোজেক্ট কি?

স্বাভাবিক ভাবে বলতে গেলে আমরা যে ওয়েব বেজ্‌ড সফওয়ার বা ওয়েবসাইট তৈরি করি সেটাই হল প্রজেক্ট। যেমন আমরা যদি জ্যাঙ্গো দিয়ে একটা ব্লগ তৈরি করি তাহলে সেটা একটা জ্যাঙ্গো প্রোজেক্ট, আবার যদি একটা ইআরপি সিস্টেম বা সোশ্যাল নেটওয়ার্ক তৈরি করি তাহলে সেগুলোও হবে একেকটা প্রোজেক্ট। অর্থাৎ আমাদের তৈরি করা সম্পুর্ন সাইট বা সিস্টেমকেই জ্যাঙ্গোর পরিভাষায় প্রোজেক্ট বলা হবে।

## অ্যাপস কি?

অ্যান্ড্রয়েড এর অ্যাপ বা অ্যাপলিকেশন এর সাথে আমরা সবাই পরিচিত, কম্পিউটার বা মোবাইলের সফটওয়্যার গুলোকেই সাধারনত আমরা অ্যাপ হিসেবে চিনি। জ্যাঙ্গোতে অ্যাপ আসলে সেরকম কিছু নয়! জাস্ট প্রোজেক্টের বিভিন্ন অংশ!! অর্থাৎ বিভিন্ন অ্যাপস মিলে একটা প্রোজেক্ট তৈরি হয় বা বলা যায় একটা প্রোজেক্ট আসলে এক বা একাধিক অ্যাপসের সমষ্টি!!!

একটা উদাহরন দেই, গাড়ি তৈরির কোম্পানিগুলো গাড়ির সম্পুর্ন অংশ কিন্তু এক জায়গাতে, একসাথে তৈরি করেনা! তাদের ওয়ার্কশপে বিভিন্ন টিম থাকে, একেক টিম গাড়ির একেক অংশ ভিন্ন ভিন্ন ভাবে তৈরি করে, কোন টিম ইঞ্জিন তৈরি করে, কোন টিম বডি তৈরি করে, আবার কোন টিম গাড়ির পেইন্টিং করে। গাড়ির বিভিন্ন অংশ তৈরি হয়ে গেলে সেটা আবার অন্য কোন টিম একত্রে জোড়া দিয়ে সম্পুর্ন গাড়ি তৈরি করে ফেলে!

এখানে সম্পুর্ন গাড়ি হল একটি প্রজেক্ট, আর সেটার বিভিন্ন অংশ হল একেকটি অ্যাপ! বডি একটি অ্যাপ, ইঞ্জিন একটি অ্যাপ, চাকা একটি অ্যাপ! এই সকল অ্যাপস যুক্ত হয়ে গাড়ি প্রজেক্টটি তৈরি হয়!

আরেকটা উদাহরন দেই, আমরা আমাদের ডেস্কটপ কম্পিউটারের দিকে লক্ষ্য করলে দেখব যে শুধু মনিটরকে বা শুধু সিপিইউ কে কিন্তু কম্পিউটার বলা হয় না। মনিটর, সিপিউ, কিবোর্ড, মাউস, স্পিকার ইত্যাদি মিলেই কিন্তু কম্পিটার। তাই জ্যাঙ্গোর পরিভাষায় এখানে আমরা কম্পিটারকে প্রোজেক্ট বলতে পারি এবং এটা বলতে পারি যে কম্পিটার প্রোজেক্টটি তৈরি হয়েছে মনিটর অ্যাপ, সিপিউ অ্যাপ, কিবোর্ড অ্যাপ বা মাউস, স্পিকার, রাউটার অ্যাপ এর মত অ্যাপস গুলোকে একত্রিত করে!

জ্যাঙ্গোতে তৈরি করা ওয়েবসাইট গুলোর ব্যপারটাও এরকম। ধরি আমরা একটা ব্লগ তৈরি করব, তাহলে সে সম্পুর্ন ব্লগটা হবে একটা প্রোজেক্ট, আর সেই ব্লগের বিভিন্ন অংশ যেমন সেটার পোস্ট করার সিস্টেম, কমেন্ট সিস্টেম, এডমিন ইন্টারফেইস, অ্যানালিটিক্স সিস্টেম ইত্যাদি ছোট ছোট অংশগুলো হল একেকটা অ্যাপ। এই সকল অ্যাপস নিয়েই তৈরি হয় আমাদের ব্লগ প্রোজেক্ট!

## প্রোজেক্টকে বিভিন্ন অ্যাপ এ ভাগ করার প্রয়োজন কি?

এর অনেকগুলো সুবিধা রয়েছে। যেমন সম্পুর্ন প্রোজেক্ট একসাথে মেইনটেন করার চেয়ে ছোট ছোট অ্যাপ আলাদা আলাদা ভাবে মেইন্টেন করা সহজ। গাড়ি বা কম্পিটারের কোন অংশ নস্ট হলে যেমন শুধু সে অংশটা ঠিক করিয়ে নিলেই হয়, সম্পুর্ন গাড়ি বা কম্পিটার পরিবর্তন বা মেরামত করাতে হয়না। এখানেও কোন অ্যাপে সমস্যা হলে শুধু মাত্র সেই অ্যাপ নিয়েই মাথা ঘামাতে হয়, সেই অ্যাপটা ঠিক করলেই হয়, সম্পুর্ন প্রোজেক্ট নিয়ে মাথা ঘামানোর প্রয়োজন পরেনা। রিইউজঅ্যাবিলিটি বাড়ে, অর্থাৎ আপনি চাইলে এক প্রোজেক্টে তৈরি করা অ্যাপ অন্য প্রোজেক্টে ব্যবহার করতে পারবেন, এমনকি অন্যের তৈরি করা অ্যাপও নিজের প্রোজেক্টে ব্যবহার করতে পারবেন... কম্পিটার বা গাড়ির পার্টসগুলোর মত!
