माझ्या ॲपचा डेटाबेस Google Drive फोल्डरने बदलला
मला माझ्या मुलीच्या संगीतातील प्रगतीचा मागोवा घ्यायचा होता. तिला दर आठवड्याला तिच्या शिक्षकांकडून ऑडिओ क्लिप्स आणि नोट्स मिळतात. मला तिच्या सरावाचे सत्र काळाप्रमाणे ऐकायचे होते. मला नवीन रेकॉर्डिंगमुळे जुनी रेकॉर्डिंग ओव्हरराईट (overwrite) होऊ द्यायची नव्हती.
हे सोडवण्यासाठी मी एक ॲप बनवले. त्याला कोणताही बॅकएंड (backend) नाही. त्याला कोणताही डेटाबेस नाही. याचा खर्च शून्य डॉलर्स आहे.
बहुतेक डेव्हलपर्स Google Drive मधील एक वैशिष्ट्य दुर्लक्षित करतात. ते म्हणजे रिव्हिजन हिस्ट्री (revision history).
जेव्हा तुम्ही एकाच नावाच्या आणि ID च्या फाईलची नवीन आवृत्ती (version) अपलोड करता, तेव्हा Drive जुनी आवृत्ती जतन करून ठेवते. ती टाइमस्टॅम्पसह (timestamped) उपलब्ध असते आणि तुम्ही ती शोधू शकता.
टेबल्स आणि फॉरेन कीज (foreign keys) असलेला एक जटिल डेटाबेस तयार करण्याऐवजी, मी फक्त फाईल ओव्हरराईट करतो. Drive स्वतः व्हर्जनिंग (versioning) हाताळते. इतिहास दाखवण्यासाठी माझे ॲप दोन API कॉल्स वापरते. मी व्हर्जनिंगसाठी कोणतेही लॉजिक लिहिले नाही.
फोल्डर स्ट्रक्चर माझ्या डेटाबेस स्कीमाप्रमाणे (database schema) काम करते:
• प्रत्येक गाण्यासाठी स्वतंत्र फोल्डर आहे. • फाईल्ससाठी teacher-audio किंवा student-practice सारखे प्रीफिक्स (prefixes) वापरले आहेत. • स्ट्रक्चर वर्णन करण्यासाठी मी JSON वापरत नाही. • नवीन फोल्डर जोडल्यास ॲप आपोआप अपडेट होते.
मला गाणी टॅग करण्यासाठी देखील एका मार्गाची गरज होती. यासाठी मी JSON फाईल वापरली नाही. मी Drive च्या मेटाडेटा प्रॉपर्टीज (metadata properties) वापरल्या. तुम्ही थेट फोल्डरला की-व्हॅल्यू पेअर्स (key-value pairs) जोडू शकता. यामुळे सर्व काही एकाच API कॉलमध्ये राहते.
सेटअप:
• Hosting: GitHub Pages (मोफत) • Auth: Google Identity Services (केवळ क्लायंट-साइड) • Storage: Google Drive • Database: काहीही नाही. फोल्डर स्ट्रक्चर हेच मॉडेल आहे. • एकूण खर्च: $0.
एक टीप: Drive ३० दिवसांनंतर जुन्या रिव्हिजन्स (revisions) काढून टाकते. ते जतन करण्यासाठी तुम्हाला keepRevisionForever फ्लॅग (flag) सेट करावा लागेल.
हे सार्वजनिक वापरासाठी असलेले उत्पादन नाही. हे माझ्या कुटुंबासाठी बनवलेले एक वैयक्तिक साधन आहे.
उद्दिष्ट फक्त पैसे वाचवणे हे नव्हते. उद्दिष्ट हे होते की दोन वर्षांनंतर, मी फक्त एक बटण दाबून माझी मुलगी आज कशी गात होती हे ऐकू शकेन. या आर्किटेक्चरमुळे (architecture) अतिरिक्त देखभालीशिवाय हे शक्य होते.
तुम्ही इन्फ्रास्ट्रक्चरसाठी (infrastructure) Drive ची रिव्हिजन हिस्ट्री किंवा प्रॉपर्टीज फील्ड वापरले आहे का?
Source: https://dev.to/vankadn/replaced-my-apps-database-with-my-daughters-google-drive-folder-1455
