প্রকল্প সম্পর্কে
Fold হলো একটি সেলফ-হোস্টেড টুডু অ্যাপ্লিকেশন যা যেকোনো স্পেক-কমপ্লায়েন্ট CalDAV সার্ভারের সাথে কাজ করে। ব্যক্তিগত সফটওয়্যার হিসেবে তৈরি এই অ্যাপটি সমস্ত টাস্ক সাধারণ VTODO প্রপার্টি হিসেবে সংরক্ষণ করে, যা অন্যান্য CalDAV ক্লায়েন্ট দ্বারাও পড়া যায়। এটি ডেটার পোর্টেবিলিটি এবং দীর্ঘস্থায়িত্ব নিশ্চিত করে।
মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে একটি ন্যাচারাল-ল্যাঙ্গুয়েজ কুইক অ্যাড পার্সার—"Clean the gutters tomorrow at 3pm #chores p1"-এর মতো কিছু টাইপ করে এন্টার চাপলেই এটি স্বয়ংক্রিয়ভাবে ডিউ ডেট, সময়, তালিকা এবং অগ্রাধিকার নিষ্কাশন করে নেয়। Today, Tomorrow, Next 7 days, Summary, এবং Search-এর মতো ভিউ প্রতিটি তালিকা জুড়ে টাস্ক একত্রিত করে। অ্যাপটি বিশেষ তালিকার নাম চেনে: Health সম্পর্কিত টাস্ক প্রতিটি ভিউয়ের শীর্ষে দেখা যায়, আবার Groceries তালিকা একটি একক সারিতে গুটিয়ে যায়, কারণ মূল প্রশ্ন হলো কেনাকাটা হয়েছে কিনা, কতগুলি আইটেম তালিকাভুক্ত ছিল তা নয়।
স্থানীয় পরিবর্তন কিউইংয়ের মাধ্যমে অফলাইন পরিচালনা সমর্থিত, যা কানেক্টিভিটি ফিরে এলে পুনরায় প্লে হয়। অ্যাপ্লিকেশনটি কীবোর্ড-ফার্স্ট এবং ফোনে PWA হিসেবে ইনস্টলযোগ্য। এতে কোনো নোটিফিকেশন, স্ট্রিক বা ডিস্টার্ব করার মতো বৈশিষ্ট্য অন্তর্ভুক্ত নেই।
এতে কোনো ইউজার ডাটাবেস বা সেশন স্টোর নেই। সাইন-ইন করার সময়, CalDAV ক্রেডেনশিয়াল সার্ভারের মাধ্যমে যাচাই করা হয় এবং AES-256-GCM দ্বারা এনক্রিপ্ট করে ব্রাউজারে সংরক্ষিত একটি HttpOnly কুকিতে রাখা হয়। জাভাস্ক্রিপ্ট এই কুকিটি পড়তে পারে না। পরবর্তী প্রতিটি রিকোয়েস্টে CalDAV রাউন্ড ট্রিপের জন্য সার্ভার মেমরিতে ক্রেডেনশিয়াল আনসিল করা হয় এবং তারপর অবিলম্বে বাতিল করে দেওয়া হয়। কন্টেইনার রিস্টার্ট করলেও কোনো ক্ষতি হয় না কারণ সার্ভার-সাইডে কিছুই পার্সিস্ট বা সংরক্ষণ করা হয় না।
ডেপ্লয়মেন্টে একটি আবশ্যক এনভায়রনমেন্ট ভেরিয়েবল SESSION_SECRET সহ Docker ব্যবহার করা হয়, যা ক্রেডেনশিয়াল কুকি এনক্রিপ্ট করে। যেহেতু কুকি স্পর্শকাতর তথ্য বহন করে, তাই TLS সহ একটি রিভার্স প্রক্সি ব্যবহার করার পরামর্শ দেওয়া হয়। TLS ছাড়া বিশ্বস্ত LAN-এর জন্য একটি ALLOW_INSECURE_COOKIE অপশন রয়েছে। CALDAV_ALLOWED_HOSTS লগইন ফর্ম কোন CalDAV সার্ভারগুলি গ্রহণ করবে তা সীমিত করতে পারে, যা পাবলিক-ফেসিং ইনস্ট্যান্সগুলিকে সুরক্ষিত রাখে।
Fold জেনেশুনেই সাব-টাস্ক, রিকারিং টুডু, ব্যাকগ্রাউন্ড সিঙ্ক বা একাধিক অ্যাকাউন্ট সাপোর্ট করে না। বিদ্যমান RRULE প্রপার্টিগুলি সংরক্ষিত থাকে তবে অ্যাপটি দ্বারা সেগুলো কখনও তৈরি বা সম্পাদনা করা হয় না। একসাথে কেবল একটি CalDAV অ্যাকাউন্ট সক্রিয় থাকে।
প্রজেক্টটি MIT লাইসেন্সপ্রাপ্ত। ডেভলপমেন্টে Bun ব্যবহার করা হয়, সাথে টাইপ-চেক করা টেস্টিং লেয়ার রয়েছে যার মধ্যে রয়েছে Vitest-এর সাপেক্ষে ইউনিট টেস্ট, একটি প্রকৃত Radicale সার্ভারের সাপেক্ষে ইন্টিগ্রেশন টেস্ট এবং Playwright e2e টেস্ট। সম্পূর্ণ স্পেসিফিকেশন এবং আর্কিটেকচার সংক্রান্ত সিদ্ধান্ত রিপোজিটরির docs ডিরেক্টরিতে নথিভুক্ত করা আছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.