প্রকল্প সম্পর্কে
## ওভারভিউ
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
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.