اسٹراوا پر آپ کا نمبر 1 سپورٹر کون ہے؟

Strava API کو دریافت کریں اور Python کے ساتھ معلوم کریں۔

پچھلے کچھ سالوں میں اسٹراوا میری سائیکلنگ اور دوڑنے کی سرگرمیوں کو ٹریک کرنے کے لیے میری جانے والی ایپ بن گئی۔ ایپ کی بہت سی عمدہ خصوصیات میں سے ایک یہ ہے کہ آپ کے دوستوں کے لیے آپ کی سرگرمیوں کے لیے آپ کو تعریفیں دینے کی صلاحیت ہے۔ اور کبھی کبھی، یہ تعریفیں صرف حوصلے کو فروغ دیتے ہیں جو آپ کو جاری رکھنے کی ضرورت ہے۔

2022 میں جب میں الپس میں چڑھنے کی تیاری کر رہا تھا اور اسٹراوا کو پہلے کی نسبت زیادہ باقاعدگی سے استعمال کرتا تھا، میں نے دیکھا کہ کچھ لوگ دوسروں سے زیادہ سخی تھے۔ لیکن مجھے قطعی اندازہ نہیں تھا کہ یہ کون ہے اور اس نے مجھے سوچنے پر مجبور کیا۔ کیا میرے اعدادوشمار پر گہری نظر رکھنے کا کوئی طریقہ ہے جو ایپ پیش کرتا ہے؟ ٹھیک ہے، وہاں ہے.

اس آرٹیکل میں، میں نے پروجیکٹ کی ساخت کے لیے ایک بہت عام "ایکسٹریکٹ ٹرانسفارم لوڈ" اپروچ استعمال کیا۔ میں یہ دکھا رہا ہوں کہ کس طرح میں نے Strava (Extract) سے اپنی سرگرمیوں کا ڈیٹا حاصل کرنے، نئی بصیرت کی گنتی (ٹرانسفارم) کرنے اور یہ جاننے کے لیے "Kudos Graph" اور دیگر ویژولائزیشنز بنانے کا انتظام کیا تاکہ سپورٹ (لوڈ) کے لیے کس کا شکریہ ادا کیا جائے۔

میں نے وقت کے ساتھ پایا کہ یہ نقطہ نظر اسی طرح کے ڈیٹا پروجیکٹس کو منظم کرنے کا ایک بہترین طریقہ ہے۔ کودنے سے پہلے ایک آخری نوٹ، یہاں جو کچھ دکھایا گیا ہے وہ قابل تولید ہے اور کوڈ Github پر دستیاب ہے (مضمون کے آخر میں لنک) تاکہ آپ اپنا بنا سکیں۔

آئیے کوڈنگ کرتے ہیں!

ہمیں سب سے پہلے توثیق کرنے کی ضرورت ہے — یعنی اسٹراوا سے رسائی کا ٹوکن حاصل کرنا۔ مندرجہ ذیل فنکشن POST کی درخواست کے ساتھ ایسا ہی کرے گا، جس میں ہمیں پچھلے سیکشن (کلائنٹ آئی ڈی، کلائنٹ سیکرٹ، ریفریش ٹوکن اور اتھارٹی کوڈ) میں حاصل کردہ تفصیلات کو اینڈ پوائنٹ تک لے جایا جائے گا۔ https://www.strava.com/oauth/token.

اس سیکشن میں، ہم دو افعال بناتے ہیں:

  1. پروفائل کی تمام سرگرمیوں کی فہرست حاصل کریں۔
    ہمیں پہلے حاصل کردہ رسائی ٹوکن کا استعمال کرتے ہوئے اور ان سرگرمیوں کے دائرہ کار کی وضاحت کرنے والی دو تاریخوں کی وضاحت کرتے ہوئے جن میں ہماری دلچسپی ہے، ہمیں ان دو تاریخوں اور ان کی اہم خصوصیات کے درمیان تمام سرگرمیوں کی فہرست ملتی ہے۔
  2. کسی مخصوص سرگرمی کے کوڈورز کی فہرست حاصل کریں۔
    بدقسمتی سے سرگرمیوں کے کڈورز کی فہرست پچھلی درخواست کے نتیجے میں شامل نہیں ہے۔ ہمیں get_kudos فنکشن بنانے کی ضرورت ہے جو کسی ایک سرگرمی کے لیے kudoers کی فہرست واپس کرتا ہے، جس کی شناخت اس کی activity_id سے ہوتی ہے۔

اب جب کہ ہمیں مطلوبہ ڈیٹا مل گیا ہے، خیال یہ ہے کہ صرف وہی رکھیں جس کی ہمیں ضرورت ہے اور اسے پانڈاس ڈیٹا فریم میں رکھیں۔

ذیل میں ٹرانسفارم فنکشن سرگرمیوں کی فہرست سے درج ذیل ڈیٹا کو نکالتا ہے:

  1. سرگرمی کی شناخت جو کسی سرگرمی کے لیے ایک منفرد شناخت کنندہ کے طور پر استعمال ہوتی ہے۔
  2. ہر ایک سرگرمی کی تعریفوں کی تعداد۔
  3. ایک لوپ میں get_kudos() فنکشن کا فائدہ اٹھا کر کسی سرگرمی کے لیے تمام kudoers کی فہرست۔
  4. ہر سرگرمی کا فاصلہ۔
  5. ہر سرگرمی میں لگنے والا وقت۔
  6. سرگرمی کی قسم۔

⚠️ Strava API کے استعمال میں ایک حد ہے۔ ہم ہر 100 منٹ میں 15 کالز اور روزانہ 1000 کالز تک محدود ہیں۔

اس پروجیکٹ میں، ہم سرگرمیوں کی فہرست حاصل کرنے کے لیے ایک بار API کو کال کر رہے ہیں، اور پھر ہر ایک میں کڈورز کی فہرست حاصل کرنے کے لیے ایک بار فی سرگرمی۔

اس کا مطلب ہے، اگر آپ کی زیر غور ونڈو میں 100 سے زیادہ سرگرمیاں ہیں، تو کوڈ جیسا ہے وہ کام نہیں کرے گا اور آپ کو API کے استعمال کی حد کی تعمیل کرنے کے لیے اس میں قدرے ترمیم کرنے کی ضرورت ہوگی۔

صرف ایک چیز باقی رہ گئی ہے کہ ہم نے جو فنکشنز بنائے ہیں ان سے فائدہ اٹھانا اور کچھ دلچسپ چیزوں کی منصوبہ بندی شروع کرنا!

میرے معاملے میں، میں 2022 میں اپنی سرگرمیوں پر غور کر رہا ہوں، اس تاریخ تک — 24/10/2022۔

ہمارے ڈیٹا ڈھانچے سے، دی گئی مدت میں چند اعلیٰ سطح کے KPIs حاصل کرنا بہت آسان ہے:

اعلی درجے کے KPIs — مصنف کی تصویر

چونکہ ہمیں پچھلے حصے میں ہر ایک سرگرمی کے لیے کھیل کی قسم مل گئی ہے، اس لیے ہم آسانی سے یہ بھی چھان بین کر سکتے ہیں کہ آیا بعض قسم کی سرگرمیاں دوسروں کے مقابلے میں تعریف حاصل کرنے کا زیادہ خطرہ رکھتی ہیں۔ یہاں ہر قسم کی سرگرمیوں کی اوسط تعداد ہے:

فی قسم کی سرگرمیوں کی اوسط تعداد — مصنف کی تصویر

یہاں تک کہ اگر یہ سب سے زیادہ مقبول قسم کی سرگرمیاں نہیں ہیں، تو دوڑنا وہ کھیل تھا جہاں میرے پاس سب سے زیادہ ڈیٹا پوائنٹس تھے اور اسی لیے میں نے کچھ زیادہ کھودنے کی کوشش کی۔ ہم یہ سمجھنے کی کوشش کر سکتے ہیں کہ ایک سرگرمی کو دوسری سے زیادہ تعریف کیوں ملے گی۔ آئیے رن کی دوری اور سرگرمی کو ملنے والی تعریفوں کی تعداد کے درمیان ممکنہ ارتباط کو دیکھیں۔

اس سے معلوم ہوا کہ ایسا لگتا ہے کہ ایک مثبت تعلق ہے، یعنی جتنا لمبا دوڑ، اتنی ہی زیادہ کڈو کی تعداد، جیسا کہ نیچے گراف میں دکھایا گیا ہے۔
یہ سچ ہے کہ اس نتیجے کی شماریاتی اہمیت قابل بحث ہے اس لیے کہ ہم نے جن ڈیٹا پوائنٹس پر غور کیا ہے ان کی تعداد کم ہے۔ یہاں صرف ایک خاص نتیجہ یہ ہے کہ مجھے مزید چلانے کی ضرورت ہے۔

ہم دوسرے متغیرات کے اثر و رسوخ کو دیکھتے ہوئے تجزیہ میں مزید آگے بڑھ سکتے ہیں، لیکن میں اسے کسی اور مضمون کے لیے چھوڑ دوں گا۔

رن کی دوری اور اس سے ملنے والی تعریفوں کی تعداد کے درمیان مثبت ارتباط — مصنف کے ذریعے گراف

آخر میں، ہم "Kudos Graph" کی منصوبہ بندی کر سکتے ہیں جس میں ہم دیکھ سکتے ہیں کہ ہمارے سرکردہ حامی کون ہیں اور انہیں آواز دے سکتے ہیں۔
یقیناً، کچھ لوگ دوسروں کے مقابلے Strava کے زیادہ عادی ہوتے ہیں اور جب وہ اپنی ایکٹیویٹی فیڈ کو نیچے اسکرول کرتے ہیں تو تعریف کرتے ہیں، جبکہ دوسرے صرف ایک بار ایپ کھولتے ہیں اور صرف ان حالیہ سرگرمیوں کو ہی تعریف دیتے ہیں جو وہ دیکھنے میں آتی ہیں۔
یہ گراف کسی بھی طرح سے لوگوں کو تعریف دینے یا نہ دینے کے بارے میں فیصلہ کرنے کے بارے میں نہیں ہے، یہ صرف ایسی نئی بصیرتوں کی وضاحت کرنے کے بارے میں ہے جو آپ کہیں اور نہیں دیکھیں گے - ایپ کے پریمیم ورژن میں بھی نہیں۔

"Kudos Graph" سرفہرست حامیوں کو دکھا رہا ہے — مصنف کا گراف

اس میں کوئی شک نہیں کہ ہم Strava API سے حاصل کردہ تمام ڈیٹا کے ساتھ اور بھی بہت کچھ کر سکتے ہیں۔ یہ صرف ایک غیر معمولی سوال کا جواب دینے کا پہلا شاٹ تھا اور چیزوں کو آگے بڑھانے کے لئے ایک اچھی مشق تھی۔

اگر آپ اپنی اسٹراوا کی سرگرمیوں کا تجزیہ کرنا چاہتے ہیں اور یہ جاننا چاہتے ہیں کہ آپ کے سرفہرست حامی کون ہیں، تو پورا کوڈ یہاں پایا جا سکتا ہے:
https://github.com/Guigs11/strava_kudos

مضمون کے آخر تک پڑھنے کے لیے شکریہ!
ذیل میں بلا جھجھک ایک پیغام چھوڑیں، یا اس کے ذریعے مجھ سے رابطہ کریں۔
لنکڈ اگر آپ کے کوئی سوالات / ریمارکس ہیں!
مزید آنے والا!

اسٹراوا پر آپ کا نمبر 1 سپورٹر کون ہے؟ ماخذ سے دوبارہ شائع کیا گیا https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 بذریعہ https://towardsdatascience.com/feed

<!–

->

ٹائم اسٹیمپ:

سے زیادہ بلاکچین کنسلٹنٹس