ওয়াকথ্রুস

এই ধাপে ধাপে নির্দেশিকাগুলো একটি কার্যকরী ক্লাসরুম অ্যাড-অনের সমস্ত খুঁটিনাটি বিষয় তুলে ধরে। প্রতিটি ধাপে নির্দিষ্ট ধারণা আলোচনা করা হয়েছে এবং একটিমাত্র ওয়েব অ্যাপ্লিকেশনে সেগুলো প্রয়োগ করা হয়েছে। এর লক্ষ্য হলো আপনাকে একটি কার্যকরী অ্যাড-অন সেট আপ, কনফিগার এবং চালু করতে সাহায্য করা।

আপনার অ্যাড-অনটিকে অবশ্যই একটি গুগল ক্লাউড প্রজেক্টের সাথে ইন্টারঅ্যাক্ট করতে হবে। আপনি যদি গুগল ক্লাউডের সাথে পরিচিত না হন, তবে আমরা আপনাকে ‘গেটিং স্টার্টেড’ গাইডগুলো পড়ার পরামর্শ দিই। আপনি গুগল ক্লাউড কনসোলে ক্রেডেনশিয়াল, এপিআই অ্যাক্সেস এবং গুগল ওয়ার্কস্পেস মার্কেটপ্লেস এসডিকে পরিচালনা করেন। মার্কেটপ্লেস এসডিকে সম্পর্কে আরও তথ্যের জন্য, গুগল ওয়ার্কস্পেস মার্কেটপ্লেস লিস্টিং গাইড পেজটি দেখুন।

এই নির্দেশিকায় নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত রয়েছে:

  • ক্লাসরুমে আইফ্রেমে দেখানোর জন্য গুগল ক্লাউড ব্যবহার করে একটি পেজ তৈরি করুন।
  • গুগল সিঙ্গেল সাইন-অন (SSO) যোগ করুন এবং ব্যবহারকারীদের সাইন ইন করার অনুমতি দিন।
  • আপনার অ্যাড-অনটি কোনো অ্যাসাইনমেন্টের সাথে সংযুক্ত করতে এপিআই (API) কল করুন।
  • অ্যাড-অন জমা দেওয়ার মূল শর্তাবলী এবং প্রয়োজনীয় বৈশিষ্ট্যগুলো উল্লেখ করুন।

এই নির্দেশিকাটি ধরে নেয় যে আপনি প্রোগ্রামিং এবং ওয়েব ডেভেলপমেন্টের মৌলিক ধারণাগুলোর সাথে পরিচিত। আমরা দৃঢ়ভাবে সুপারিশ করছি যে, ধাপে ধাপে নির্দেশিকাগুলো শুরু করার আগে প্রজেক্ট কনফিগারেশন নির্দেশিকাটি পড়ে নিন। এই পৃষ্ঠায় গুরুত্বপূর্ণ কনফিগারেশন বিবরণ রয়েছে যা ধাপে ধাপে নির্দেশিকাগুলোতে সম্পূর্ণরূপে আলোচনা করা হয়নি।

উদাহরণ বাস্তবায়ন

পাইথনে একটি সম্পূর্ণ রেফারেন্স উদাহরণ পাওয়া যায়। জাভা এবং নোড.জেএস- এও এর আংশিক বাস্তবায়ন রয়েছে। পরবর্তী পৃষ্ঠাগুলিতে থাকা উদাহরণ কোডের উৎস হলো এই বাস্তবায়নগুলি।

কোথায় ডাউনলোড করবেন

পাইথন এবং জাভার উদাহরণগুলো গিটহাব রিপোজিটরিগুলোতে পাওয়া যাবে:

Node.js স্যাম্পলটি একটি জিপ ফাইল হিসেবে ডাউনলোড করা যাবে:

পূর্বশর্ত

একটি নতুন অ্যাড-অনস প্রজেক্ট প্রস্তুত করতে নিম্নলিখিত বিভাগগুলি পর্যালোচনা করুন।

HTTPS সার্টিফিকেট

যদিও আপনি আপনার অ্যাপ যেকোনো ডেভেলপমেন্ট এনভায়রনমেন্টে হোস্ট করতে পারেন, আপনার ক্লাসরুম অ্যাড-অনটি শুধুমাত্র https:// এর মাধ্যমেই উপলব্ধ। তাই, আপনার অ্যাপটি ডেপ্লয় করতে বা অ্যাড-অন আইফ্রেমের মধ্যে পরীক্ষা করতে SSL এনক্রিপশনসহ একটি সার্ভার প্রয়োজন।

SSL সার্টিফিকেট সহ localhost ব্যবহার করা সম্ভব; লোকাল ডেভেলপমেন্টের জন্য সার্টিফিকেট তৈরি করতে চাইলে mkcert ব্যবহার করার কথা ভাবতে পারেন।

গুগল ক্লাউড প্রকল্প

এই উদাহরণগুলো ব্যবহারের জন্য আপনাকে একটি গুগল ক্লাউড প্রজেক্ট কনফিগার করতে হবে। শুরু করার জন্য প্রয়োজনীয় ধাপগুলোর একটি সার্বিক ধারণা পেতে গুগল ক্লাউড প্রজেক্ট তৈরির নির্দেশিকাটি দেখুন। প্রথম ওয়াকথ্রু-এর 'একটি গুগল ক্লাউড প্রজেক্ট সেট আপ করুন' বিভাগটিতেও নির্দিষ্ট কনফিগারেশন পদক্ষেপগুলো ধাপে ধাপে বর্ণনা করা হয়েছে।

কাজ শেষ হলে, আপনার OAuth 2.0 ক্লায়েন্ট আইডি একটি JSON ফাইল হিসেবে ডাউনলোড করুন; আপনাকে এই ক্রেডেনশিয়াল ফাইলটি আনজিপ করা উদাহরণ ডিরেক্টরিতে যোগ করতে হবে। নির্দিষ্ট অবস্থান জানতে ‘ফাইলগুলো বুঝুন’ অংশটি দেখুন।

OAuth পরিচয়পত্র

নতুন OAuth ক্রেডেনশিয়াল তৈরি করতে এই ধাপগুলো অনুসরণ করুন:

  • গুগল ক্লাউড ক্রেডেনশিয়ালস পৃষ্ঠায় যান। স্ক্রিনের উপরে সঠিক প্রজেক্টটি নির্বাচন করা আছে কিনা তা নিশ্চিত করুন।
  • CREATE CREDENTIALS-এ ক্লিক করুন এবং ড্রপ-ডাউন থেকে OAuth ক্লায়েন্ট আইডি বেছে নিন।
  • পরবর্তী পৃষ্ঠায়:
    • অ্যাপ্লিকেশন টাইপটি ওয়েব অ্যাপ্লিকেশন- এ সেট করুন।
    • ‘Authorized redirect URIs’-এর অধীনে, ‘ADD URI’-তে ক্লিক করুন। আপনার অ্যাপ্লিকেশনের জন্য একটি কলব্যাক রুটের সম্পূর্ণ পাথ যোগ করুন। উদাহরণস্বরূপ, https://my.domain.com/auth-callback অথবা https://localhost:5000/callback । এই ওয়াকথ্রু-এর পরবর্তী অংশে আপনি এই রুটটি তৈরি এবং পরিচালনা করবেন। আপনি যেকোনো সময় এই ধরনের আরও রুট সম্পাদনা বা যোগ করতে পারেন।
    • তৈরি করুন- এ ক্লিক করুন।
  • এরপর আপনি আপনার নতুন তৈরি করা ক্রেডেনশিয়ালসহ একটি ডায়ালগ বক্স পাবেন। ডাউনলোড JSON অপশনটি বেছে নিন। ডাউনলোড করা JSON ফাইলটি আপনার সার্ভার ডিরেক্টরিতে কপি করুন।

ভাষা-নির্দিষ্ট পূর্বশর্ত

পূর্বশর্তগুলির সবচেয়ে হালনাগাদ তালিকার জন্য প্রতিটি রিপোজিটরির README ফাইলটি দেখুন।

পাইথন

আমাদের পাইথন উদাহরণটিতে ফ্লাস্ক ফ্রেমওয়ার্ক ব্যবহার করা হয়েছে। আপনি প্রদত্ত লিঙ্কগুলো থেকে সম্পূর্ণ সোর্স কোড ডাউনলোড করতে পারেন।

প্রয়োজন হলে পাইথন ৩.৭+ ইনস্টল করুন এবং pip উপলব্ধ আছে কিনা তা নিশ্চিত করুন।

python3 -m ensurepip --upgrade

আমরা আপনাকে একটি নতুন পাইথন ভার্চুয়াল এনভায়রনমেন্ট সেট আপ এবং সক্রিয় করার পরামর্শ দিই।

python3 -m venv .classroom-addon-env
source .classroom-addon-env/bin/activate

ডাউনলোড করা উদাহরণগুলোর প্রতিটি ওয়াকথ্রু সাবডিরেক্টরিতে একটি requirements.txt আছে। আপনি pip ব্যবহার করে প্রয়োজনীয় লাইব্রেরিগুলো দ্রুত ইনস্টল করতে পারেন। প্রথম ওয়াকথ্রুটির জন্য প্রয়োজনীয় লাইব্রেরিগুলো ইনস্টল করতে নিম্নলিখিত কমান্ডগুলো ব্যবহার করুন।

cd flask/01-basic-app
pip install -r requirements.txt

নোড.জেএস

আমাদের Node.js উদাহরণটি Express ফ্রেমওয়ার্ক ব্যবহার করে। আপনি প্রদত্ত লিঙ্কগুলো থেকে সম্পূর্ণ সোর্স কোড ডাউনলোড করতে পারেন।

এই উদাহরণটির জন্য Node.js v16.13 বা তার পরবর্তী সংস্করণ প্রয়োজন।

npm ব্যবহার করে প্রয়োজনীয় নোড মডিউলগুলো ইনস্টল করুন।

npm install

জাভা

আমাদের জাভা উদাহরণটিতে স্প্রিং বুট ফ্রেমওয়ার্ক ব্যবহার করা হয়েছে। আপনি প্রদত্ত লিঙ্কগুলো থেকে সম্পূর্ণ সোর্স কোড ডাউনলোড করতে পারেন।

আপনার মেশিনে জাভা ১১+ ইনস্টল করা না থাকলে, তা ইনস্টল করুন।

Spring Boot অ্যাপ্লিকেশনগুলো বিল্ড পরিচালনা এবং ডিপেন্ডেন্সি ব্যবস্থাপনার জন্য Gradle বা Maven ব্যবহার করতে পারে। এই উদাহরণটিতে Maven র‍্যাপারটি অন্তর্ভুক্ত রয়েছে, যা আপনাকে সরাসরি Maven ইনস্টল না করেই একটি সফল বিল্ড নিশ্চিত করে।

যে ডিরেক্টরিতে আপনি প্রজেক্টটি ডাউনলোড বা ক্লোন করেছেন, সেখানে প্রজেক্টটি চালানোর জন্য প্রয়োজনীয় পূর্বশর্তগুলো আছে কিনা তা নিশ্চিত করতে নিম্নলিখিত কমান্ডগুলো চালান।

java --version
./mvnw --version

অথবা উইন্ডোজে:

java -version
mvnw.cmd --version

ফাইলগুলো বুঝুন

নিম্নলিখিত বিভাগগুলিতে উদাহরণ ডিরেক্টরিগুলির বিন্যাস বর্ণনা করা হয়েছে।

ডিরেক্টরির নাম

প্রতিটি রিপোজিটরিতে বেশ কয়েকটি ডিরেক্টরি থাকে, যাদের নাম একটি সংখ্যা দিয়ে শুরু হয়, যেমন /01-basic-app/ । এই সংখ্যাগুলো নির্দিষ্ট ওয়াকথ্রু ধাপগুলোর সাথে সম্পর্কিত। প্রতিটি ডিরেক্টরিতে একটি সম্পূর্ণ কার্যকরী ওয়েব অ্যাপ থাকে, যা একটি নির্দিষ্ট ওয়াকথ্রুতে বর্ণিত ফিচারগুলো বাস্তবায়ন করে। উদাহরণস্বরূপ, /01-basic-app/ ডিরেক্টরিতে 'Create an add-on' ওয়াকথ্রুটির চূড়ান্ত বাস্তবায়ন রয়েছে।

ডিরেক্টরির বিষয়বস্তু

বাস্তবায়ন ভাষার উপর নির্ভর করে ডিরেক্টরির বিষয়বস্তু ভিন্ন হয়:

পাইথন

  • রুট ডিরেক্টরিতে নিম্নলিখিত ফাইলগুলি রয়েছে:

    • main.py হলো পাইথন অ্যাপ্লিকেশনের প্রবেশ পথ। এই ফাইলে আপনি যে সার্ভার কনফিগারেশন ব্যবহার করতে চান তা উল্লেখ করুন, তারপর সার্ভার চালু করার জন্য এটি রান করুন।
    • requirements.txt - ওয়েব অ্যাপটি চালানোর জন্য প্রয়োজনীয় পাইথন মডিউলসমূহ। এগুলো pip install -r requirements.txt ব্যবহার করে স্বয়ংক্রিয়ভাবে ইনস্টল করা যায়।
    • client_secret.json - এটি গুগল ক্লাউড থেকে ডাউনলোড করা ক্লায়েন্ট সিক্রেট ফাইল। উল্লেখ্য যে, এটি উদাহরণ আর্কাইভে অন্তর্ভুক্ত নয়; আপনাকে আপনার ডাউনলোড করা ক্রেডেনশিয়াল ফাইলটি রিনেম করে প্রতিটি ডিরেক্টরির রুটে কপি করতে হবে।

  • config.py - ফ্লাস্ক সার্ভারের কনফিগারেশন অপশনসমূহ।

  • webapp ডিরেক্টরিতে ওয়েব অ্যাপ্লিকেশনের বিষয়বস্তু থাকে। এর মধ্যে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত রয়েছে:

  • /templates/ ডিরেক্টরিতে বিভিন্ন পৃষ্ঠার জন্য জিনজা টেমপ্লেটগুলো রয়েছে।

  • /static/ ডিরেক্টরিতে ছবি, CSS এবং আনুষঙ্গিক জাভাস্ক্রিপ্ট ফাইলগুলো থাকে।

  • routes.py - ওয়েব অ্যাপ্লিকেশন রাউটগুলোর হ্যান্ডলার মেথডসমূহ।

  • __init__.py - এটি webapp মডিউলের ইনিশিয়ালাইজার। এই ইনিশিয়ালাইজারটি Flask সার্ভার চালু করে এবং config.py তে সেট করা কনফিগারেশন অপশনগুলো লোড করে।

  • কোনো নির্দিষ্ট ওয়াকথ্রু ধাপের জন্য প্রয়োজন অনুযায়ী অতিরিক্ত ফাইল।

নোড.জেএস

ওয়াকথ্রু-এর প্রতিটি ধাপ তার নিজস্ব <step> সাব-ফোল্ডারে পাওয়া যাবে। প্রতিটি ধাপে রয়েছে:

  • জাভাস্ক্রিপ্ট, সিএসএস এবং ছবির মতো স্ট্যাটিক ফাইলগুলো ./<step>/public ফোল্ডারে পাওয়া যায়।
  • এক্সপ্রেস রাউটারগুলো ./<step>/routes ফোল্ডারগুলোতে পাওয়া যায়।
  • HTML টেমপ্লেটগুলো ./<step>/views ফোল্ডারগুলোতে পাওয়া যায়।
  • সার্ভার অ্যাপ্লিকেশনটি হলো ./<step>/app.js /app.js।

জাভা

প্রজেক্ট ডিরেক্টরিতে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত রয়েছে:

  • src.main ডিরেক্টরিতে অ্যাপ্লিকেশনটি সফলভাবে চালানোর জন্য সোর্স কোড এবং কনফিগারেশন থাকে। এই ডিরেক্টরিতে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত: + java.com.addons.spring ডিরেক্টরিতে Application.java এবং Controller.java ফাইল থাকে। Application.java ফাইলটি অ্যাপ্লিকেশন সার্ভার চালানোর জন্য দায়ী, আর Controller.java ফাইলটি এন্ডপয়েন্ট লজিক পরিচালনা করে। + resources ডিরেক্টরিতে HTML এবং JavaScript ফাইলসহ templates ডিরেক্টরি থাকে। এতে application.properties ফাইলটিও থাকে, যা সার্ভার চালানোর জন্য পোর্ট, কীস্টোর ফাইলের পাথ এবং templates ডিরেক্টরির পাথ নির্দিষ্ট করে দেয়। এই উদাহরণে কীস্টোর ফাইলটি resources ডিরেক্টরিতে অন্তর্ভুক্ত করা হয়েছে। আপনি আপনার পছন্দমতো যেকোনো জায়গায় এটি রাখতে পারেন, তবে নিশ্চিত করবেন যে আপনি application.properties ফাইলটি সেই অনুযায়ী পাথ দিয়ে আপডেট করেছেন।
    • pom.xml প্রজেক্টটি বিল্ড করার জন্য প্রয়োজনীয় তথ্য এবং প্রয়োজনীয় ডিপেন্ডেন্সিগুলো নির্ধারণ করার উপাদান থাকে।
    • .gitignore ফাইলে এমন ফাইলের নাম থাকে যা গিট-এ আপলোড করা উচিত নয়। নিশ্চিত করুন যে আপনি এই .gitignore ফাইলে আপনার কীস্টোরের পাথ যোগ করেছেন। প্রদত্ত উদাহরণে, এটি হলো secrets/*.p12 (কীস্টোরের উদ্দেশ্য নিচের অংশে আলোচনা করা হয়েছে)। ওয়াকথ্রু ২ এবং তার পরবর্তী ধাপগুলোর জন্য, আপনার client_secret.json ফাইলের পাথও অন্তর্ভুক্ত করা উচিত, যাতে আপনি আপনার সিক্রেটগুলো কোনো রিমোট রিপোজিটরিতে অন্তর্ভুক্ত না করেন। ওয়াকথ্রু ৩ এবং তার পরবর্তী ধাপগুলোর জন্য, আপনার H2 ডাটাবেস ফাইল এবং ফাইল ডেটাস্টোর ফ্যাক্টরির পাথ যোগ করা উচিত। এই ডেটাস্টোরগুলোর সেটআপ সম্পর্কে আরও তথ্য রিপিট ভিজিট হ্যান্ডলিং- এর উপর তৃতীয় ওয়াকথ্রুতে পাওয়া যাবে।
    • mvnw এবং mvnw.cmd হলো যথাক্রমে ইউনিক্স এবং উইন্ডোজের জন্য মেভেন র‍্যাপার এক্সিকিউটেবল। উদাহরণস্বরূপ, ইউনিক্সে ./mvnw --version চালালে অন্যান্য তথ্যের পাশাপাশি অ্যাপাচি মেভেনের ভার্সনও আউটপুট হিসেবে পাওয়া যায়।
    • .mvn ডিরেক্টরিতে মেভেন র‍্যাপারের কনফিগারেশন থাকে।

নমুনা সার্ভারটি চালান

আপনার সার্ভারটি পরীক্ষা করার জন্য এটি চালু করতে হবে। আপনার পছন্দের ভাষায় উদাহরণ সার্ভারটি চালানোর জন্য এই নির্দেশাবলী অনুসরণ করুন:

পাইথন

OAuth পরিচয়পত্র

পূর্বে বর্ণিত পদ্ধতি অনুযায়ী আপনার OAuth ক্রেডেনশিয়াল তৈরি ও ডাউনলোড করুন। JSON ফাইলটি আপনার অ্যাপ্লিকেশনের সার্ভার লঞ্চ ফাইলের পাশে রুট ডিরেক্টরিতে রাখুন।

সার্ভার কনফিগার করুন

ওয়েব সার্ভার চালানোর জন্য আপনার কাছে কয়েকটি বিকল্প রয়েছে। আপনার পাইথন ফাইলের শেষে নিম্নলিখিতগুলির মধ্যে একটি যোগ করুন:

  1. অসুরক্ষিত localhost । উল্লেখ্য যে, এটি শুধুমাত্র ব্রাউজার উইন্ডোতে সরাসরি পরীক্ষার জন্য উপযুক্ত; অসুরক্ষিত ডোমেইনগুলো ক্লাসরুম অ্যাড-অনের আইফ্রেমে লোড করা যায় না।

    if __name__ == "__main__":
      # Disable OAuthlib's HTTPs verification.
      os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
    
      # Run the web app at http://localhost:5000.
      app.run(debug=True)
    
  2. localhost সুরক্ষিত করুন। আপনাকে অবশ্যই ssl_context আর্গুমেন্টের জন্য SSL কী ফাইলগুলির একটি টাপল নির্দিষ্ট করতে হবে।

    if __name__ == "__main__":
      # Run the web app at https://localhost:5000.
      app.run(host="localhost",
              ssl_context=("localhost.pem", "localhost-key.pem"),
              debug=True)
    
  3. গুনিকর্ন সার্ভার। এটি প্রোডাকশন-রেডি সার্ভার বা ক্লাউড ডেপ্লয়মেন্টের জন্য উপযুক্ত। এই লঞ্চ অপশনটি ব্যবহারের জন্য আমরা একটি PORT এনভায়রনমেন্ট ভ্যারিয়েবল সেট করার পরামর্শ দিই।

    if __name__ == "__main__":
      # Run the web app at https://<your domain>:<server_port>.
      # Defaults to https://<your domain>:8080.
      server_port = os.environ.get("PORT", "8080")
      app.run(debug=True, port=server_port, host="0.0.0.0")
    

সার্ভার চালু করুন

পূর্ববর্তী ধাপে কনফিগার করা অনুযায়ী সার্ভারটি চালু করতে আপনার পাইথন অ্যাপ্লিকেশনটি চালান।

python main.py

আপনার ওয়েব অ্যাপটি সঠিকভাবে চলছে কিনা তা নিশ্চিত করতে, প্রদর্শিত URL-টিতে ক্লিক করে ব্রাউজারে দেখুন।

নোড.জেএস

সার্ভার কনফিগার করুন

HTTPS-এর মাধ্যমে সার্ভার চালানোর জন্য, আপনাকে একটি সেলফ-সার্টিফিকেট তৈরি করতে হবে যা অ্যাপ্লিকেশনটি HTTPS-এর মাধ্যমে চালাতে ব্যবহৃত হয়। এই ক্রেডেনশিয়ালগুলো রিপোজিটরি রুট ফোল্ডারে sslcert/cert.pem এবং sslcert/key.pem নামে সেভ করতে হবে। আপনার ব্রাউজার যাতে এগুলো গ্রহণ করে, তার জন্য এই কী-গুলো আপনার OS কী চেইনে যোগ করার প্রয়োজন হতে পারে।

নিশ্চিত করুন যে আপনার .gitignore ফাইলে *.pem ফাইলটি আছে, কারণ আপনি ফাইলটি গিট-এ কমিট করতে চান না।

সার্ভার চালু করুন

আপনি নিম্নলিখিত কমান্ডের মাধ্যমে অ্যাপ্লিকেশনটি চালাতে পারেন, যেখানে step01 পরিবর্তে আপনি সার্ভার হিসেবে যে সঠিক ধাপটি চালাতে চান তা বসাতে হবে (উদাহরণস্বরূপ, 01-basic-app-এর জন্য step01 এবং 02-sign-in-এর জন্য step02 )।

npm run step01

অথবা

npm run step02

এটি https://localhost:5000 ঠিকানায় ওয়েব সার্ভারটি চালু করে।

আপনি আপনার টার্মিনালে Control + C চেপে সার্ভারটি বন্ধ করতে পারেন।

জাভা

সার্ভার কনফিগার করুন

HTTPS-এর মাধ্যমে সার্ভার চালানোর জন্য, আপনাকে একটি সেলফ-সার্টিফিকেট তৈরি করতে হবে যা HTTPS-এর মাধ্যমে অ্যাপ্লিকেশনটি চালানোর জন্য ব্যবহৃত হয়।

লোকাল ডেভেলপমেন্টের জন্য mkcert ব্যবহার করার কথা বিবেচনা করতে পারেন। mkcert ইনস্টল করার পর, নিচের কমান্ডগুলো HTTPS-এর মাধ্যমে চালানোর জন্য স্থানীয়ভাবে সংরক্ষিত একটি সার্টিফিকেট তৈরি করে।

mkcert -install
mkcert -pkcs12 -p12-file <path_to_keystore> <domain_name>

এই উদাহরণে কীস্টোর ফাইলটি রিসোর্সেস ডিরেক্টরিতে অন্তর্ভুক্ত করা হয়েছে। আপনি এটি আপনার পছন্দমতো যেকোনো জায়গায় রাখতে পারেন, তবে নিশ্চিত করুন যে আপনি application.properties ফাইলটিতে সেই অনুযায়ী পাথটি আপডেট করেছেন। ডোমেইন নেম হলো সেই ডোমেইন যেখানে আপনি প্রজেক্টটি চালান (উদাহরণস্বরূপ, localhost )।

নিশ্চিত করুন যে আপনার .gitignore ফাইলে *.p12 অন্তর্ভুক্ত আছে, কারণ আপনি ফাইলটি গিট-এ কমিট করতে চান না।

সার্ভার চালু করুন

Application.java ফাইলের main মেথডটি রান করে সার্ভারটি চালু করুন। উদাহরণস্বরূপ, IntelliJ-তে আপনি src/main/java/com/addons/spring ডিরেক্টরিতে থাকা Application.java তে রাইট-ক্লিক করে Run 'Application' করতে পারেন, অথবা Application.java ফাইলটি খুলে main(String[] args) মেথড সিগনেচারের বাম পাশের সবুজ তীরচিহ্নে ক্লিক করতে পারেন। বিকল্পভাবে, আপনি একটি টার্মিনাল উইন্ডোতে প্রজেক্টটি রান করতে পারেন:

./mvnw spring-boot:run

অথবা উইন্ডোজে:

mvnw.cmd spring-boot:run

এটি https://localhost:5000 এ অথবা application.properties এ আপনার নির্দিষ্ট করা পোর্টে সার্ভারটি চালু করে।