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

## ওভারভিউ India Air Quality & Weather Tracker হলো একটি সম্পূর্ণ স্বয়ংক্রিয় ডেটা পাইপলাইন যা বিনামূল্যের Open-Meteo API ব্যবহার করে ৮টি প্রধান ভারতীয় শহরের (Bangalore, Mumbai, New Delhi, Gorakhpur, Chennai, Hyderabad, Pune, Kolkata) লাইভ বায়ু গুণমান ও আবহাওয়ার ডেটা সংগ্রহ করে। এটি SQLite ডেটাবেসে ঐতিহাসিক রেকর্ড সংরক্ষণ করে এবং Streamlit ও Plotly দিয়ে তৈরি একটি ইন্টারঅ্যাকটিভ ড্যাশবোর্ড পরিচালনা করে। পাইপলাইনটি GitHub Actions-এর মাধ্যমে প্রতি ঘণ্টায় স্বয়ংক্রিয়ভাবে চলে, যার জন্য কোনো ম্যানুয়াল হস্তক্ষেপ বা API কী প্রয়োজন হয় না। ## বৈশিষ্ট্য - **লাইভ মনিটরিং**: ৮টি ভারতীয় শহরের রিয়েল-টাইম AQI ও আবহাওয়া। - **স্বয়ংক্রিয় আপডেট**: GitHub Actions-এর মাধ্যমে ঘণ্টায় রিফ্রেশ—কোনো সার্ভার প্রয়োজন নেই। - **ঐতিহাসিক সংরক্ষণ**: প্রতিটি রিডিং SQLite-এ সংরক্ষিত হয়। - **ইন্টারঅ্যাকটিভ ড্যাশবোর্ড**: ট্রেন্ড বিশ্লেষণের জন্য Streamlit ও Plotly দিয়ে তৈরি। - **ট্রেন্ড বিশ্লেষণ**: সময়ের সাথে PM2.5, তাপমাত্রা ও AQI-এর প্রবণতা। - **সম্পূর্ণ স্বয়ংক্রিয়**: শূন্য ম্যানুয়াল কাজসহ এন্ড-টু-এন্ড পাইপলাইন। - **API কী প্রয়োজন নেই**: বিনামূল্যের Open-Meteo API ব্যবহার করে। ## আর্কিটেকচার প্রকল্পটি তিনটি প্রধান উপাদান নিয়ে গঠিত: 1. **ঐতিহাসিক ডেটা ব্যাকফিল** (`scripts/backfill_history.py`): একবার চালানোর স্ক্রিপ্ট যা সব শহরের জন্য ৩০ দিনের ঘণ্টাভিত্তিক ঐতিহাসিক AQI ও আবহাওয়ার ডেটা ডাউনলোড করে SQLite-এ সংরক্ষণ করে। 2. **স্বয়ংক্রিয় ঘণ্টাভিত্তিক আপডেট** (`scripts/fetch_latest.py`): সর্বশেষ রিডিং সংগ্রহ করে, SQLite ডেটাবেসে যোগ করে এবং আপডেট করা ডেটাবেস GitHub-এ কমিট করে। GitHub Actions শিডিউলার দ্বারা ট্রিগার হয়। 3. **ইন্টারঅ্যাকটিভ ড্যাশবোর্ড** (`dashboard/app.py`): SQLite ডেটাবেস থেকে পড়ে এবং বর্তমান স্ন্যাপশট, ঐতিহাসিক প্রবণতা, PM2.5 বিশ্লেষণ, গড় AQI তুলনা এবং ইন্টারঅ্যাকটিভ Plotly ভিজ্যুয়ালাইজেশনসহ তাপমাত্রা বনাম PM2.5 সম্পর্ক প্রদান করে। ## টেক স্ট্যাক - **ভাষা**: Python - **ডেটা হ্যান্ডলিং**: Pandas, Requests - **স্টোরেজ**: SQLite - **ড্যাশবোর্ড**: Streamlit, Plotly - **অটোমেশন**: GitHub Actions - **ডেটা সোর্স**: Open-Meteo API ## শুরু করা 1. রিপোজিটরি ক্লোন করুন। 2. `pip install -r requirements.txt` দিয়ে ডিপেন্ডেন্সি ইনস্টল করুন। 3. ৩০ দিনের ঐতিহাসিক ডেটাসহ ডেটাবেস তৈরি করতে `python scripts/backfill_history.py` চালান। 4. `streamlit run dashboard/app.py` দিয়ে ড্যাশবোর্ড চালু করুন। 5. ঘণ্টাভিত্তিক আপডেট স্বয়ংক্রিয় করতে GitHub Actions ওয়ার্কফ্লো সক্রিয় করুন। 6. এন্ট্রি পয়েন্ট হিসেবে `dashboard/app.py` ব্যবহার করে Streamlit Community Cloud-এ ডিপ্লয় করুন। ## কেন এটি আলাদা এই প্রকল্পটি একটি সম্পূর্ণ এন্ড-টু-এন্ড ডেটা পাইপলাইন প্রদর্শন করে—বাস্তব-জগতের API থেকে লাইভ ডেটা সংগ্রহ, GitHub Actions দিয়ে ইনজেশন স্বয়ংক্রিয়করণ, SQLite-এ ঐতিহাসিক রেকর্ড সংরক্ষণ এবং একটি ইন্টারঅ্যাকটিভ ড্যাশবোর্ডের মাধ্যমে অন্তর্দৃষ্টি ভিজ্যুয়ালাইজ করা। এটি এককালীন স্ট্যাটিক বিশ্লেষণের বদলে একটি প্রোডাকশন-স্টাইল অ্যানালিটিক্স ওয়ার্কফ্লো অনুকরণ করে। ## ভবিষ্যৎ উন্নতি - ১০০+ ভারতীয় শহরের জন্য সাপোর্ট - PostgreSQL ইন্টিগ্রেশন - Docker কন্টেইনারাইজেশন - Email/SMS-এর মাধ্যমে AQI অ্যালার্ট নোটিফিকেশন - মেশিন লার্নিং-ভিত্তিক AQI পূর্বাভাস - বাহ্যিক ইন্টিগ্রেশনের জন্য REST API