- लेख के लेखक ने Gravel Worlds Long Voyage साइकिल रेस में भाग लेने के बाद Casey's General Store से pizza ऑर्डर करके भोजन प्रबंधन को बेहतर बनाने का फैसला किया
- पिछले साल तेज़ राइडर्स ने सारी pizza खा ली थी, इसलिए पहुँचने पर pizza नहीं मिली
- इस समस्या को हल करने के लिए, उन्होंने ऐसा स्क्रिप्ट लिखने का निर्णय लिया जो साइकिल GPS के geofence से बाहर निकलते ही pizza ऑर्डर कर दे
- यह स्क्रिप्ट पिछले वर्ष बनाए गए serverless GPS tracker के ऊपर बनाई गई थी
- स्क्रिप्ट अगली stop के लिए ETA की गणना करती है और tracker के AWS Location service में सेट geofence से बाहर निकलते ही pizza ऑर्डर करने वाली Lambda function को trigger करती है
- Casey's के पास online ordering के लिए public API नहीं है, इसलिए Playwright का उपयोग करके वेबसाइट screen scraping पर निर्भर रहना पड़ा
- pizza ऑर्डर सफल या असफल होने के आधार पर उनके फ़ोन पर push notification भेजने की व्यवस्था की गई
- रेस के दौरान उन्हें pizza सफलतापूर्वक ऑर्डर हो जाने की गलत notification मिली, लेकिन stop पर ऑर्डर का कोई रिकॉर्ड नहीं था
- रेस के बाद उन्होंने browser के चलने का video capture करके analysis के लिए S3 bucket में upload करने वाली Lambda function में सुधार किया
- उनका अनुमान है कि विफलता इसलिए हुई होगी क्योंकि Playwright browser में अंतिम
form.submit() प्रोसेस होते ही Lambda ने execution समाप्त कर दिया
- विफलता के बावजूद, उन्होंने इस प्रोजेक्ट से बहुत कुछ सीखा और आने वाली रेस में फिर से कोशिश करने की योजना बनाई
- इस प्रोजेक्ट का code GitHub पर उपलब्ध है
1 टिप्पणियां
Hacker News राय