जब मैं Akemax में इंटर्नशिप कर रहा था, तो एक बात जो मुझे सबसे ज़्यादा खटकी वह यह थी कि रोज़मर्रा की रिपोर्टिंग का कितना बड़ा हिस्सा अभी भी कागज़ पर चलता था। अगर फ़ैक्ट्री फ़्लोर पर किसी को रिपोर्ट जमा करनी होती, तो उसे नीचे जाना पड़ता, एक कागज़ी फ़ॉर्म लेना पड़ता, हाथ से भरना पड़ता, और जमा करना पड़ता। यह काम करता था, लेकिन धीमा और बाधाकारी था। मैं सोचता रहता: फ़ॉर्म को सर्वर पर क्यों नहीं डाल देते?
यह विचार मेरे दिमाग़ में बना रहा। इन फ़ॉर्म का इस्तेमाल करने वाले लोग प्रोग्रामर नहीं हैं। वे सॉफ़्टवेयर इंस्टॉल नहीं करना चाहते, अकाउंट नहीं बनाना चाहते, या कोई नया टूल नहीं सीखना चाहते। उन्हें बस एक फ़ॉर्म भरना है और काम पर वापस लौटना है। इसलिए जो भी मैं बनाऊँ वह बिल्कुल सरल होना चाहिए - एक URL खोलो, फ़ॉर्म चुनो, भरो, सबमिट करो।
यहीं से RTR (Real-Time Reporting) का जन्म हुआ।
चरण 1: RTR वास्तव में क्या करता है
ऐप लॉन्च होने के बाद, यह एडमिनिस्ट्रेटर के डेस्कटॉप पर चलता है और एक लोकल सर्वर बनाता है। उसी नेटवर्क पर मौजूद यूज़र एडमिनिस्ट्रेटर के URL पर जाकर फ़ॉर्म पेज तक पहुँच सकते हैं, जहाँ वे फ़ॉर्म चुन सकते हैं, तारीख़ और ज़रूरी जानकारी दर्ज कर सकते हैं, और सबमिट कर सकते हैं।
एडमिन ऐप से, एडमिनिस्ट्रेटर सबमिट किए गए फ़ॉर्म देख सकता है और आवश्यकतानुसार फ़ॉर्म बना या संशोधित कर सकता है।
# The architecture in a nutshell:
┌─────────────────────┐ IPC only ┌──────────────┐
│ Admin Panel (UI) │ ◄──────────────► │ Main Process│
│ Electron Window │ │ (Node.js) │
└─────────────────────┘ └──────┬───────┘
│
┌──────┴───────┐
│ Express HTTP │
│ Port 8080 │
│ LAN only │
└──────┬───────┘
│
┌─────────────────┼─────────────────┐
│ │ │
Phone/Tablet Desktop PC Any Browser
on the LAN on the LAN on the LAN
चरण 2: यूज़र अकाउंट क्यों नहीं
व्यक्तिगत यूज़र अकाउंट का उपयोग करने के बजाय, RTR प्रत्येक फ़ॉर्म सबमिट करने वाले डिवाइस का MAC एड्रेस रिकॉर्ड करता है। चूँकि कंपनियों के नेटवर्क पर आम तौर पर एक निश्चित संख्या में डिवाइस कनेक्ट होते हैं, यह कर्मचारियों को लॉग इन कराए बिना सबमिशन को डिवाइस से जोड़ने का एक सरल तरीका प्रदान करता है।
मैंने यह तरीका इसलिए अपनाया क्योंकि, फ़ॉर्म की भावना के अनुसार, कोई भी व्यक्ति बिना अकाउंट बनाए या लॉग इन किए एक फ़ॉर्म उठाकर भर सकना चाहिए।
चरण 3: नेटवर्क द्वारा सुरक्षा
RTR विशेष रूप से इंट्रानेट पर उपयोग के लिए डिज़ाइन किया गया है। यह लोकल नेटवर्क के बाहर से कनेक्शन स्वीकार नहीं करता, इसलिए इसकी सुरक्षा मूल रूप से उस नेटवर्क की सुरक्षा पर निर्भर है जिस पर यह चल रहा है।
एडमिन पैनल स्वयं एक नेटिव Electron विंडो है जो विशेष रूप से इंटर-प्रोसेस कम्युनिकेशन के माध्यम से संवाद करती है - इसके लिए कोई नेटवर्क सॉकेट कभी नहीं खोला जाता, जिससे यह फ़ायरवॉल सेटिंग्स की परवाह किए बिना LAN से अगम्य रहता है। फ़ॉर्म सर्वर केवल LAN-फ़ेसिंग नेटवर्क एडाप्टर से बाइंड होता है और व्हाइटलिस्ट किए गए IP एड्रेस या CIDR रेंज तक पहुँच सीमित करता है।
चरण 4: प्रमुख विशेषताएँ
- फ़ॉर्म बिल्डर - विभिन्न प्रश्न प्रकारों के साथ रिपोर्ट फ़ॉर्म बनाएँ और संशोधित करें
- सबमिशन ब्राउज़र - एकत्रित प्रतिक्रियाओं को देखें, फ़िल्टर करें और खोजें
- CSV एक्सपोर्ट - Excel, Google Sheets, या किसी भी डेटा टूल में विश्लेषण के लिए सबमिशन एक्सपोर्ट करें
- IP व्हाइटलिस्टिंग - ठीक से नियंत्रित करें कि कौन से डिवाइस फ़ॉर्म एक्सेस और सबमिट कर सकते हैं
- डिवाइस ट्रैकिंग - MAC एड्रेस रिकॉर्डिंग सबमिशन को डिवाइस से जोड़ती है
- पूरी तरह लोकल - सारा डेटा एडमिन की मशीन पर SQLite में रहता है, क्लाउड की ज़रूरत नहीं
चरण 5: टेक स्टैक
RTR इनसे बना है:
- Electron - एडमिन पैनल के लिए नेटिव डेस्कटॉप शेल
- Node.js + Express - फ़ॉर्म वितरण के लिए हल्का HTTP सर्वर
- SQLite - ज़ीरो-कॉन्फ़िग लोकल डेटाबेस
- NSIS - Windows इंस्टॉलर पैकेजिंग
चरण 6: डाउनलोड
RTR v0.1.0 डाउनलोड करें (Windows x64)
या सोर्स से क्लोन और बिल्ड करें:
git clone https://github.com/petermurrayx/RTR--Real-Time-Reporting.git
cd RTR--Real-Time-Reporting
npm install
npm start # development mode
npm run build # build the installer
नोट: इंस्टॉलर Windows 10/11 (x64) के लिए है। पहली बार लॉन्च करने पर, Windows Firewall LAN एक्सेस की अनुमति माँगेगा - इसे स्वीकार करें ताकि अन्य डिवाइस फ़ॉर्म सर्वर तक पहुँच सकें।
हालाँकि यह किसी नई शानदार AI तकनीक का उपयोग नहीं करता, लेकिन यह मुझे याद दिलाता है कि मैंने कंप्यूटर साइंस क्यों चुना: लोगों की ज़िंदगी आसान बनाने, उन्हें अधिक कुशलता से काम करने में मदद करने, और काम पूरा करने के लिए तकनीक का उपयोग करना।
अगर आपके पास कुछ खाली समय है, तो इसे देखें। यह MIT-लाइसेंस प्राप्त है, इसलिए कोई भी कोड का उपयोग या संशोधन कर सकता है।