প্রকল্প সম্পর্কে
## এটি কী
quick-cita-cr কোস্টা রিকার Educación Vial পোর্টালে অ্যাপয়েন্টমেন্ট খোলার জন্য একটি ব্যক্তিগত মনিটরিং টুল। এটি আপনার নিজস্ব অ্যাকাউন্ট ক্রেডেনশিয়াল দিয়ে সাইন ইন করে, আপনি যে প্র্যাকটিক্যাল-টেস্ট শাখাগুলো কনফিগার করেছেন সেগুলো পরীক্ষা করে, ইতিমধ্যে দেখা তথ্যের স্থানীয় রেকর্ড রাখে এবং নতুন বা আগের তারিখ দেখা গেলে আপনাকে অবহিত করে।
README-এ উল্লেখ করা হয়েছে যে প্রকল্পটি লাইভ পোর্টালের বিপরীতে স্থানীয়ভাবে যাচাই করা হয়েছে। এটিতে একটি পরিচিত সীমাবদ্ধতাও উল্লেখ করা হয়েছে: যাচাইকরণের সময় Cloudflare চ্যালেঞ্জ pure headless মোডে নির্ভরযোগ্যভাবে সমাধান হয়নি, তাই অনির্দিষ্ট প্রয়োগের জন্য headed মোড, ভার্চুয়াল ডিসপ্লে বা উষ্ণ স্থায়ী প্রোফাইল সুপারিশ করা হয়।
## প্রতিবেদিত ক্ষমতা
README-এ নিম্নলিখিত বৈশিষ্ট্যগুলো তালিকাভুক্ত করা হয়েছে:
- শাখা অনুযায়ী অ্যাপয়েন্টমেন্ট মনিটরিং।
- নতুন তারিখ, আগের সেরা তারিখ এবং কনফিগারযোগ্য "quick window" দিনের জন্য অ্যালার্ট।
- SQLite স্টেট যাতে পুনরাবৃত্ত রানগুলো শুধুমাত্র অর্থপূর্ণ পরিবর্তনে অ্যালার্ট করে।
- অ্যাপ পাসওয়ার্ড ব্যবহার করে Gmail SMTP বিজ্ঞপ্তি।
- কুকি এবং সেশন স্টেট ধরে রাখার জন্য স্থায়ী Chrome প্রোফাইল।
- মানুষের মতো টাইপিং, ক্লিক, বিলম্ব এবং স্ক্রোলিং।
- `undetected_chromedriver` মাধ্যমে Chrome অ্যান্টি-ডিটেকশন ফ্ল্যাগ।
- পরীক্ষা, লিন্টিং এবং টাইপ চেক সহ `uv`-ভিত্তিক Python প্রকল্প।
- Linux / Oracle Cloud-এর জন্য systemd ব্যবহারকারী টাইমার টেমপ্লেট।
README-এর স্ট্যাটাস অংশে বলা হয়েছে যে Cloudflare চ্যালেঞ্জ headed মোডে সমাধান হয়েছিল, লগইন স্থায়ী প্রোফাইল সহ কাজ করেছিল, প্র্যাকটিক্যাল-টেস্ট ফ্লো শাখা উপলব্ধতায় পৌঁছেছিল, অ্যাপয়েন্টমেন্ট তারিখগুলো SQLite স্টেটের সাথে তুলনা করা হয়েছিল এবং ইমেল বিজ্ঞপ্তি ফরম্যাটিং কাজ করেছিল।
## প্রয়োজনীয়তা
- Python 3.12 বা 3.13
- `uv`
- Chrome বা Chrome for Testing
- একটি Educación Vial অ্যাকাউন্ট
- প্র্যাকটিক্যাল-টেস্ট ফ্লো-এর জন্য একটি রসিদ নম্বর
- ঐচ্ছিকভাবে, ইমেল বিজ্ঞপ্তির জন্য Gmail অ্যাপ পাসওয়ার্ড
## শুরু করা
রিপোজিটরি ক্লোন করুন, `uv sync` চালান, তারপর `uv run quick-cita init` চালান। গোপনীয়তা `~/.config/quick-cita-cr/secrets.env`-এ অবস্থিত (README `chmod 600` সুপারিশ করে), এবং শাখা এবং ব্রাউজার সেটিংস `~/.config/quick-cita-cr/config.yaml`-এ অবস্থিত।
ডায়াগনস্টিক্স `uv run quick-cita doctor` মাধ্যমে পাওয়া যায়। একটি একক দৃশ্যমান চেক `uv run quick-cita check --headed` দিয়ে চালানো যায়, এবং অবিরত মনিটরিং `uv run quick-cita watch --headed` দিয়ে করা যায়। `demo` কমান্ডও রয়েছে যা একটি দৃশ্যমান ব্রাউজার খোলে, স্থায়ী প্রোফাইল ব্যবহার করে, কনফিগার করা শাখাগুলো পরীক্ষা করে এবং নতুন অ্যালার্ট ইভেন্ট না থাকলেও অ্যাপয়েন্টমেন্ট সারাংশ প্রিন্ট করে।
## কনফিগারেশন এলাকা
YAML কনফিগ তিনটি গ্রুপ কভার করে:
- **appointment** — লাইসেন্স ক্লাস, শাখার তালিকা, `quick_window_days`, এবং প্রথম রান, নতুন তারিখ, আগের সেরা এবং উইন্ডোর মধ্যে অবস্থিত বিজ্ঞপ্তির জন্য সুইচ।
- **schedule** — মিনিটে বিরতি, জিটার শতাংশ, বিরতি দেওয়ার আগে সর্বোচ্চ ব্যর্থতা, এবং ব্যর্থতার পর কতক্ষণ বিরতি দেওয়া হবে।
- **browser** — headless ফ্ল্যাগ, Chrome এক্সিকিউটেবল পথ, প্রোফাইল ডিরেক্টরি, এবং টাইমআউট।
বর্তমানে বিজ্ঞপ্তি Gmail SMTP (হোস্ট, পোর্ট, প্রেরক ঠিকানা, প্রাপক তালিকা) মাধ্যমে সমর্থিত। আইডি টাইপ, শনাক্তকরণ নম্বর, পাসওয়ার্ড, রসিদ নম্বর এবং ইমেল ক্রেডেনশিয়াল সহ গোপনীয়তা পরিবেশ পরিবর্তনশীল বা গোপনীয় ফাইল থেকে পড়া হয়।
## sudo ছাড়া Chrome
সিস্টেম-ইনস্টল করা Linux Chrome এবং `sudo` ছাড়া মেশিনের জন্য, README `~/.local/share/quick-cita-cr/chrome-for-testing`-এ Chrome for Testing ডাউনলোড করার, একটি সংক্ষিপ্ত Python স্নিপেট দিয়ে আনজিপ করার এবং বাইনারি এবং crashpad হ্যান্ডলারকে এক্সিকিউটেবল করার একটি ক্রম প্রদান করে। কনফিগে `executable_path` তখন সেই আনজিপ করা বাইনারির দিকে নির্দেশ করে।
## ডেভেলপমেন্ট এবং লেআউট
ডেভেলপমেন্ট কমান্ডগুলোর মধ্যে রয়েছে `uv sync --all-groups`, `ruff format`, `ruff check`, `mypy` on `src/quick_cita_cr`, এবং `pytest`। সোর্স ট্রি ব্রাউজার অটোমেশন (ড্রাইভার, Cloudflare সলভার, মানব আচরণ হেল্পার), বিজ্ঞপ্তি ব্যাকএন্ড, একটি Typer CLI, কনফিগ এবং গোপনীয় মডেল, পোর্টাল ক্লায়েন্ট, অ্যাপয়েন্টমেন্ট-তারিখ পার্সার, SQLite স্টোরেজ, এবং স্ন্যাপশট তুলনা করে ইভেন্ট সনাক্ত করে এমন ওয়াচার গ্রুপ করে। পরীক্ষা, GitHub Actions CI, systemd ডেপ্লয়মেন্ট টেমপ্লেট এবং ডেপ্লয়মেন্ট/নিরাপত্তা ডক্স এর পাশাপাশি অবস্থিত।
## নিরাপত্তা নোট
README ক্রেডেনশিয়াল, `.env` ফাইল, SQLite স্টেট, ব্রাউজার প্রোফাইল, কুকি, স্ক্রিনশট, লগ বা প্রমাণিত HTML কমিট করার বিরুদ্ধে সতর্ক করে এবং `docs/security.md`-এর দিকে নির্দেশ করে।
## লাইসেন্স
MIT।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.