প্রকল্প সম্পর্কে

React-admin হলো marmelab দ্বারা রক্ষণাবেক্ষণ করা একটি ফ্রন্টএন্ড ফ্রেমওয়ার্ক, যা REST বা GraphQL API-এর ওপর ভিত্তি করে ব্রাউজারে চলা সিঙ্গেল-পেজ অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। এটি TypeScript-এ লেখা এবং React ও Material Design-এর ওপর ভিত্তি করে তৈরি, এবং এটি npm-এ react-admin হিসেবে পরিবেশিত হয়। ব্যাকএন্ড অজ্ঞতা (Backend agnosticism): এই ফ্রেমওয়ার্কটি Data Providers নামক অ্যাডাপ্টারের মাধ্যমে API-এর সাথে যোগাযোগ করে। এর README-তে ৪৫টিরও বেশি অ্যাডাপ্টারের একটি তালিকা রয়েছে এবং ব্যাখ্যা করা হয়েছে যে বিদ্যমান প্রোভাইডারগুলো একটি API-এর ব্লুপ্রিন্ট হিসেবে কাজ করতে পারে অথবা বিদ্যমান API কোয়েরি করার জন্য একটি কাস্টম Data Provider লেখা যেতে পারে। বিল্ডিং ব্লকস: এই প্রজেক্টটি অথেন্টিকেশন, রাউটিং, ফর্ম এবং ভ্যালিডেশন, datagrids, সার্চ এবং ফিল্টারিং, রিলেশনশিপ, রোল এবং পারমিশন, একটি রিচ টেক্সট এডিটর, i18n, নোটিফিকেশন, মেনু, থিমিং এবং ক্যাশিং কভার করে এমন হুক এবং কম্পোনেন্ট প্রদান করে। এটি অ্যাক্সেসিবিলিটি, রেসপনসিভনেস, সিকিউরিটি, স্পিড এবং টেস্টেবিলিটির মতো গুণাবলি এবং অপ্টিমিস্টিক রেন্ডারিং, ফিল্টার-অ্যাজ-ইউ-টাইপ, আনডু, প্রেফারেন্স এবং সেভড কোয়েরির মতো ইউজার-এক্সপেরিয়েন্স ফিচারগুলোর তালিকা প্রদান করে। কাস্টমাইজেশন: react-admin-কে লুজলি কাপলড React কম্পোনেন্ট এবং হুকের একটি লাইব্রেরি হিসেবে উপস্থাপন করা হয়েছে যা পুনঃব্যবহারযোগ্য কন্ট্রোলার লজিক প্রকাশ করে, যাতে যেকোনো অংশ আপনার নিজস্ব অংশ দিয়ে প্রতিস্থাপন করা যায়, উদাহরণস্বরূপ একটি কাস্টম datagrid, REST-এর পরিবর্তে GraphQL, অথবা Material Design-এর পরিবর্তে একটি ভিন্ন ডিজাইন সিস্টেম। TypeScript-কে অপ্টি-ইন হিসেবে বর্ণনা করা হয়েছে, তাই ডেভেলপমেন্ট TypeScript বা JavaScript-এ করা যেতে পারে। README-তে উল্লেখ করা হয়েছে যে এই ফ্রেমওয়ার্কটি Material UI, react-hook-form, react-router, react-query এবং TypeScript সহ অন্যান্য টুল দ্বারা পরিচালিত। শুরু করা: ইনস্টলেশন npm install react-admin অথবা yarn add react-admin এর মাধ্যমে করা হয়। ডকুমেন্টেশনের মধ্যে একটি টিউটোরিয়াল, ইউটিউব ভিডিও টিউটোরিয়াল এবং একটি সম্পূর্ণ API রেফারেন্স অন্তর্ভুক্ত রয়েছে। রিপোজিটরিতে উদাহরণ অ্যাপ্লিকেশন রয়েছে: এন্ড-টু-এন্ড টেস্টের জন্য পোস্ট, কমেন্ট এবং ইউজারসহ একটি সাধারণ ব্লগ; একটি ই-কমার্স পোস্টার শপ অ্যাডমিন যা অফিসিয়াল ডেমো; একটি CRM অ্যাপ্লিকেশন; রিয়েলটাইম লক এবং নোটিফিকেশনসহ একটি হেল্পডেস্ক টিকেটিং অ্যাপ্লিকেশন; এবং টিউটোরিয়াল অনুসরণ করে তৈরি করা অ্যাপ্লিকেশন। README-তে বলা হয়েছে যে এই উদাহরণগুলো সার্ভার ছাড়াই কাজ করে কারণ API ক্লায়েন্ট সাইডে সিমুলেট করা হয়। একটি ন্যূনতম ব্যবহারের উদাহরণ দেখায় যে কীভাবে একটি Admin কম্পোনেন্ট Resource কম্পোনেন্টগুলোকে র‍্যাপ করে, যা একটি API এন্ডপয়েন্টের জন্য লিস্ট, এডিট এবং ক্রিয়েট পেজ ঘোষণা করে, যেখানে পেজ কম্পোনেন্টগুলো List, DataTable, Edit, Create, SimpleForm, DateField, EditButton এবং ইনপুট কম্পোনেন্ট থেকে তৈরি করা হয়। ডেভেলপমেন্ট: এই মনোরিপো-টি একটি makefile ব্যবহার করে যাতে make install, make build, make run-simple, make run-demo, make test এবং make prettier-এর মতো কমান্ড রয়েছে। ইউনিট টেস্টের জন্য jest, এন্ড-টু-এন্ড টেস্টের জন্য cypress ব্যবহৃত হয় এবং একটি git প্রি-কমিট হুক পরিবর্তিত ফাইলগুলোর সাথে সম্পর্কিত টেস্টগুলো রান করে। কন্ট্রিবিউশনগুলো বিদ্যমান prettier-ভিত্তিক কোডিং স্টাইল অনুসরণ করার এবং ইউনিট টেস্ট ও ডকুমেন্টেশন অন্তর্ভুক্ত করার প্রত্যাশা করা হয়। বাগফিক্স পুল রিকোয়েস্টগুলো master ব্রাঞ্চকে লক্ষ্য করে এবং নতুন ফিচার ও ব্রেকিং চেঞ্জগুলো next ব্রাঞ্চকে লক্ষ্য করে করা হয়। সাপোর্ট এবং লাইসেন্স: Discord এবং StackOverflow-এর মাধ্যমে কমিউনিটি সাপোর্ট প্রদান করা হয় এবং React-Admin Enterprise Edition-এর মাধ্যমে কমার্শিয়াল সাপোর্ট প্রদান করা হয়। React-admin MIT লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত এবং বাণিজ্যিক উদ্দেশ্যসহ বিনামূল্যে ব্যবহারের জন্য উন্মুক্ত।