इस प्रोजेक्ट के बारे में

Hummingbird Node.js के लिए लिखा गया एक self-hosted साइट ट्रैकिंग और एनालिटिक्स स्टोरेज सर्वर है। यह विज़िटर्स को 1x1 ट्रैकिंग पिक्सेल प्रदान करता है; ब्राउज़र का GET अनुरोध एक छोटे JavaScript स्निपेट द्वारा उत्पन्न ट्रैकिंग डेटा ले जाता है। आवश्यकताएं और इंस्टॉलेशन इसके लिए node.js v0.8.0 या उससे उच्च संस्करण की आवश्यकता होती है। README के सेटअप चरणों में रिपॉजिटरी को क्लोन करना, डिपेंडेंसी प्राप्त करने के लिए npm install चलाना, और यदि मैप फीचर चाहिए तो रूट डायरेक्टरी में MaxMind के GeoLiteCity.dat GeoIP डेटाबेस को डाउनलोड करना शामिल है। सर्वर को `node server.js` के साथ शुरू किया जाता है। डैशबोर्ड और परिनियोजन डैशबोर्ड डिफ़ॉल्ट रूप से पोर्ट 8080 पर चलता है और इसे config/config.js में प्रोडक्शन उपयोग के लिए अक्षम किया जा सकता है। डैशबोर्ड public/ से सर्व किया गया साधारण HTML है, इसलिए कोई भी वेब सर्वर इसे होस्ट कर सकता है। README चेतावनी देता है कि यदि डैशबोर्ड को सार्वजनिक रूप से दृश्य नहीं होना चाहिए, तो इसे सुरक्षित किया जाना चाहिए, आमतौर पर इसे basic auth के साथ nginx या apache के पीछे रखकर। डैशबोर्ड का 'listen' फ़ंक्शन बाइंड करने के लिए इंटरफ़ेस के रूप में एक दूसरा तर्क स्वीकार करता है — उदाहरण के लिए केवल localhost के लिए "127.0.0.1", या सभी इंटरफेस के लिए "0.0.0.0" — और ट्रैकिंग पिक्सेल को एक अलग पोर्ट पर चलाया जाना चाहिए ताकि यह बाहरी दुनिया से पहुंच योग्य रहे। ट्रैकिंग सेटअप करना client/hummingbird.js में एक छोटा स्क्रिप्ट है जो Hummingbird इवेंट को ट्रिगर करता है। इसे पेज बॉडी में पेस्ट किया जा सकता है या अपलोड करके स्क्रिप्ट टैग के साथ संदर्भित किया जा सकता है। बिना किसी तर्क के HummingbirdTracker.track() को कॉल करने से पेज URL जैसे मानक पैरामीटर भेजे जाते हैं; मनमाना डेटा जोड़ा जा सकता है, उदाहरण के लिए HummingbirdTracker.track({logged_in: true}), और उस डेटा का उपयोग Hummingbird के मेट्रिक्स के अंदर बैकएंड पर इवेंट्स को फ़िल्टर करने के लिए किया जा सकता है। आर्किटेक्चर Hummingbird दो भागों में व्यवस्थित है: एक Node.js ट्रैकिंग सर्वर जो ट्रैकिंग पिक्सेल के माध्यम से उपयोगकर्ता गतिविधि को रिकॉर्ड करता है, और JavaScript विजेट्स का एक सेट जो उस गतिविधि को प्रदर्शित करता है। सर्वर संभव होने पर WebSockets के माध्यम से सभी गतिविधियों को क्लाइंट्स तक प्रसारित करता है, और विफल होने पर Flash sockets या long polling का उपयोग करता है। Hummingbird.WebSocket ऑब्जेक्ट सर्वर से WebSocket इवेंट्स को JSON ऑब्जेक्ट्स के रूप में प्राप्त करता है, और व्यक्तिगत विजेट एक मेट्रिक को सब्सक्राइब करते हैं और हैंडलर फ़ंक्शंस पंजीकृत करते हैं जो उस मेट्रिक के मौजूद होने पर कॉल किए जाते हैं। कस्टम मेट्रिक्स और विजेट्स मेट्रिक्स lib/metrics में होते हैं और ऑटो-लोड होते हैं। प्रत्येक मेट्रिक में एक हैंडलर फ़ंक्शन होता है जो हर बार नए उपयोगकर्ता इवेंट के होने पर कॉल किया जाता है, और डेटा को एक `data` ऑब्जेक्ट प्रॉपर्टी में स्टोर करता है जिसे मेट्रिक द्वारा निर्दिष्ट अंतराल पर क्लाइंट्स को भेजा जाता है। total_views.js को एक बुनियादी उदाहरण के रूप में, और cart_adds.js को क्वेरी पैरामीटर्स पर फ़िल्टरिंग के उदाहरण के रूप में दिया गया है। स्टॉक विजेट्स (Counter, Logger, Graph) यह प्रदर्शित करते हैं कि सर्वर के डेटा से कैसे जुड़ा जाए; एक न्यूनतम विजेट उदाहरण public/js/widgets/logger.js है। एक विजेट एक ऑब्जेक्ट है जिसका प्रोटोटाइप Hummingbird.Base को विस्तारित करता है और onMessage को लागू करता है। README एक टिप भी देता है: प्रोडक्शन सर्वर से डेटा स्ट्रीम करते समय UI को स्थानीय रूप से चलाने के लिए, http://localhost:8080/?ws_server=your-host.com&ws_port=12345 जैसे URL का उपयोग करें। प्रोजेक्ट नोट्स Hummingbird MIT लाइसेंस के तहत लाइसेंस प्राप्त है। README में Michael Nutt, Benny Wong और कई अन्य योगदानकर्ताओं के नाम सूचीबद्ध हैं।