ऐप कैसे बना है
मृदंग सेवा ऐप Expo, Supabase और PostgreSQL का उपयोग क्यों करता है। कक्षा में लगभग 200 विद्यार्थी हैं, जिनमें से कई बच्चे हैं, और इसे बिना बजट के स्वयंसेवक चलाते हैं। ये चुनाव वहीं से निकले हैं।
इसके पीछे तीन विचार
- एक ही कोड। Android ऐप, iPhone के लिए वेब संस्करण और कंप्यूटर का संस्करण, सब एक ही कोड से बनते हैं।
- नियम डेटाबेस में। किसी बच्चे का रिकॉर्ड कौन देख सकता है, यह डेटाबेस खुद तय करता है, इसलिए कोई स्क्रीन या ऐप का पुराना संस्करण इससे बच नहीं सकता।
- पहले चरण में कोई ख़र्च नहीं। हर सेवा मुफ़्त प्लान पर चलती है। बाद में भुगतान करना एक विकल्प है, दोबारा लिखने का काम नहीं।
ऐप को क्या संभालना था
- बच्चों का डेटा: 18 वर्ष से कम विद्यार्थियों की जन्मतिथि, माता-पिता के फ़ोन नंबर, सहमति और उपस्थिति। भारत का DPDP अधिनियम लागू होता है।
- ज़्यादातर सदस्य iPhone चलाते हैं: App Store में आने का ख़र्च साल का US$99 है, जो पहला चरण नहीं उठा सकता।
- कोई बजट नहीं और देखभाल करने वाले स्वयंसेवक कम: कोड आम भाषाओं में हो और नियम एक ही जगह लिखे हों।
- बैच नहीं, जब चाहें आएँ: खुले समय में विद्यार्थी कभी भी आते हैं, इसलिए उपस्थिति का मतलब है चेक-इन और चेक-आउट समय वाली एक विज़िट।
- तीन भाषाएँ, बाद में और केंद्र: अभी अंग्रेज़ी, तेलुगु और हिन्दी; बाद में दूसरे केंद्र, शायद विदेश में भी, हर एक का अपना समय क्षेत्र।
हिस्से
आपके फ़ोन या कंप्यूटर पर: Expo (React Native और TypeScript) से बना ऐप। Android वाले इसे एक लिंक से इंस्टॉल करते हैं; iPhone वाले वेब संस्करण को होम स्क्रीन पर जोड़ते हैं।
उसके पीछे: एक Supabase प्रोजेक्ट, यानी साइन-इन, फ़ाइल भंडारण और तय समय पर चलने वाले कामों के साथ एक PostgreSQL डेटाबेस। हर पढ़ना और लिखना डेटाबेस के नियमों से होकर जाता है।
बाहरी सेवाएँ, हर एक बदली जा सकती है: Expo और Firebase Android सूचनाएँ पहुँचाते हैं, Brevo ईमेल भेजता है, पाठ के वीडियो YouTube पर ही रहते हैं, और Cloudflare Pages वेब संस्करण और यह वेबसाइट चलाता है।
आम विकल्पों से तुलना
हर पंक्ति एक तरीका है जिससे यह ऐप बनाया जा सकता था। ये टिप्पणियाँ इस कक्षा की स्थिति के बारे में हैं, तकनीक के बारे में आम राय नहीं।
| विकल्प | हमारे लिए अच्छा | हमारे लिए समस्याएँ |
|---|---|---|
| Expo + Supabase (जो हम उपयोग करते हैं) | मुफ़्त प्लान; Android, iPhone वेब और बाद में iOS ऐप के लिए एक ही कोड; पहुँच के नियम PostgreSQL के अंदर; रिपोर्ट सीधी SQL; डेटा एक मानक PostgreSQL बैकअप। | नियमों के लिए SQL आना चाहिए; अभी iPhone वालों को वेब ऐप मिलता है। |
| Flutter + Firebase (हमारा पहला मसौदा) | एक ही कोड; लोकप्रिय। | नए प्रोजेक्ट में फ़ाइल भंडारण और सर्वर फ़ंक्शन के लिए कार्ड वाला सशुल्क प्लान चाहिए; डॉक्यूमेंट डेटाबेस में रिपोर्ट कठिन; डेटा और नियम Firebase तक सीमित। |
| अलग-अलग Android और iPhone ऐप | सबसे अच्छा iPhone ऐप। | दो कोड और एक सर्वर; Mac और साल का US$99 चाहिए। |
| MySQL के साथ PHP या Node | आम कौशल; पूरी तरह अपना। | होस्टिंग का हर महीने ख़र्च; MySQL हर उपयोगकर्ता के लिए पंक्तियाँ सीमित नहीं कर सकता, इसलिए हर नियम उस सर्वर में होगा जिसे हमें लिखना, सुरक्षित रखना और अपडेट करना होगा; साइन-इन, फ़ाइलें और सूचनाएँ सब हमें बनानी होंगी। |
| नो-कोड (AppSheet या Glide के साथ Google Sheets) | जल्दी शुरू; प्रोग्रामर न होने वालों के लिए आसान। | बच्चों का डेटा एक स्प्रेडशीट में रहता है जिसे संपादन की अनुमति वाला कोई भी पढ़ या बदल सकता है; कक्षा बढ़ने पर हर उपयोगकर्ता का भुगतान। |
| तैयार संगीत-विद्यालय सॉफ़्टवेयर | देखभाल का कोई काम नहीं। | मासिक शुल्क; पहले से बुक किए, सशुल्क पाठों के लिए बना, जब चाहें आने वाली सेवा या तेलुगु और हिन्दी के लिए नहीं। |
| WhatsApp और Excel (कक्षा आज ऐसे चलती है) | मुफ़्त; सबके पास पहले से है। | हर सदस्य को हर फ़ोन नंबर दिखता है; सहमति का कोई रिकॉर्ड नहीं; 200 विद्यार्थियों पर उपस्थिति का इतिहास नहीं। |
MySQL नहीं, PostgreSQL क्यों?
दोनों अच्छे डेटाबेस हैं। निर्णायक बात यह है कि नियम कहाँ रहते हैं।
- पंक्ति-स्तर सुरक्षा (row-level security): PostgreSQL खुद किसी उपयोगकर्ता को कोई पंक्ति देने से मना कर सकता है, इसलिए विद्यार्थी को केवल अपना रिकॉर्ड दिखता है। MySQL ऐसा नहीं कर सकता, इसलिए बीच में हमारा अपना सर्वर चाहिए।
- बदलाव सहेजते समय जाँच: "रिकॉर्ड में दर्ज बच्चे के लिए माता-पिता की सहमति होनी चाहिए" की जाँच बदलाव के अंत में होती है, चाहे वह कई चरणों में हुआ हो।
- डेटाबेस के अंदर तय समय पर चलने वाले काम: रोज़ के फ़ॉलो-अप और भूले हुए चेक-इन बंद करना।
- साथ में मुफ़्त सेवा: Supabase मुफ़्त प्लान पर ही PostgreSQL में साइन-इन, फ़ाइल भंडारण और ऐप के लिए इंटरफ़ेस जोड़ता है।
Expo क्यों?
- Android ऐप, वेब संस्करण और बजट होने पर iPhone ऐप के लिए एक ही कोड।
- क्लाउड में बिल्ड, इसलिए किसी को Mac या पूरा Android सेटअप नहीं चाहिए।
- दोबारा इंस्टॉल किए बिना अपडेट: सुधार मिनटों में फ़ोन तक पहुँचते हैं।
- सूचनाओं, QR कोड के लिए कैमरा, अभ्यास के औज़ारों के लिए ध्वनि और चेक-इन के लिए लोकेशन के तैयार हिस्से।
- आम कौशल: TypeScript और React व्यापक रूप से जाने जाते हैं।
इन चुनावों की क़ीमत
- मुफ़्त डेटाबेस 7 दिन उपयोग न होने पर रुक जाता है। रोज़ की कक्षा उसे चालू रखती है, और Supabase पहले चेतावनी भेजता है।
- मुफ़्त प्लान में अपने-आप बैकअप नहीं होते। हम हर सप्ताह एन्क्रिप्ट किया हुआ बैकअप लेते हैं और उसे वापस लाने का अभ्यास करते हैं।
- मुफ़्त प्लान में 500 MB डेटा और 1 GB फ़ाइलें आती हैं। वीडियो YouTube पर ही रहते हैं; अगला कदम सशुल्क प्लान है (लगभग US$25 प्रति माह), कोड बदले बिना।
- हम Expo और Supabase खातों पर निर्भर हैं। दोनों खुले, मानक कोड पर चलते हैं, इसलिए कहीं और जाना संभव रहता है।
छोटे जवाब
क्या मुफ़्त प्लान जोखिम भरा नहीं है?
मुफ़्त प्लान में भी सशुल्क प्लान वाले ही डेटाबेस नियम हैं। जोखिम रुक जाना या डेटा खोना है, और हम उन्हें साप्ताहिक बैकअप से संभालते हैं। सशुल्क प्लान पर जाने में एक दिन लगता है।
अगर Supabase बंद हो जाए या दाम बदल दे?
डेटा साधारण PostgreSQL है। बैकअप किसी भी PostgreSQL होस्ट पर वापस लाया जा सकता है, और Supabase खुद ओपन सोर्स है जिसे हमारे अपने सर्वर पर चलाया जा सकता है।
WhatsApp ही क्यों न रखें?
WhatsApp हर सदस्य को हर माता-पिता का नंबर दिखाता है और उपस्थिति का इतिहास नहीं रखता। रिकॉर्ड का काम ऐप ले लेता है; बातचीत के लिए WhatsApp बना रह सकता है।
दाम और मुफ़्त प्लान की सीमाएँ अक्टूबर 2026 के अनुसार। पूरे कारण, एक चित्र के साथ, प्रोजेक्ट के सोर्स कोड में अंग्रेज़ी में हैं।