എന്റെ ആപ്പിന്റെ ഡാറ്റാബേസിന് പകരം ഒരു Google Drive ഫോൾഡർ ഉപയോഗിച്ചു

എന്റെ മകളുടെ സംഗീത പഠനത്തിന്റെ പുരോഗതി വിലയിരുത്താൻ ഞാൻ ആഗ്രഹിച്ചു. എല്ലാ ആഴ്ചയും അവൾക്ക് അധ്യാപികയിൽ നിന്ന് ഓഡിയോ ക്ലിപ്പുകളും കുറിപ്പുകളും ലഭിക്കാറുണ്ട്. കാലക്രമേണ അവളുടെ പരിശീലന സെഷനുകൾ കേൾക്കാൻ ഞാൻ ആഗ്രഹിച്ചു. പുതിയ റെക്കോർഡിംഗുകൾ പഴയവയെ overwrite ചെയ്യുന്നത് ഞാൻ ആഗ്രഹിച്ചില്ല.

ഇത് പരിഹരിക്കാനായി ഞാൻ ഒരു ആപ്പ് നിർമ്മിച്ചു. ഇതിന് ബാക്കെൻഡ് (backend) ഇല്ല. ഡാറ്റാബേസ് ഇല്ല. ഇതിന് ഒരു രൂപ പോലും ചിലവില്ല.

മിക്ക ഡെവലപ്പർമാരും Google Drive-ലെ ഒരു ഫീച്ചർ ശ്രദ്ധിക്കാറില്ല. അതാണ് റിവിഷൻ ഹിസ്റ്ററി (revision history).

ഒരേ പേരും ID-യും ഉള്ള ഒരു ഫയലിന്റെ പുതിയ പതിപ്പ് നിങ്ങൾ അപ്‌ലോഡ് ചെയ്യുമ്പോൾ, Drive പഴയ പതിപ്പ് സൂക്ഷിച്ചുവെക്കും. അതിന് ടൈംസ്റ്റാമ്പ് (timestamp) ഉണ്ടാകുകയും എളുപ്പത്തിൽ തിരയാൻ സാധിക്കുകയും ചെയ്യും.

ടേബിളുകളും ഫോറിൻ കീകളും (foreign keys) ഉപയോഗിച്ച് സങ്കീർണ്ണമായ ഒരു ഡാറ്റാബേസ് നിർമ്മിക്കുന്നതിന് പകരം, ഞാൻ ഫയൽ ലളിതമായി overwrite ചെയ്യുന്നു. Drive തന്നെ വേർഷനിംഗ് (versioning) കൈകാര്യം ചെയ്യുന്നു. ഹിസ്റ്ററി കാണിക്കാൻ എന്റെ ആപ്പ് രണ്ട് API കോളുകൾ ഉപയോഗിക്കുന്നു. വേർഷനിംഗിനായി ഞാൻ പ്രത്യേകം ലോജിക് ഒന്നും എഴുതിയിട്ടില്ല.

ഫോൾഡർ ഘടനയാണ് എന്റെ ഡാറ്റാബേസ് സ്കീമയായി (database schema) പ്രവർത്തിക്കുന്നത്:

• ഓരോ പാട്ടിനും അതിന്റേതായ ഫോൾഡർ ഉണ്ട്. • ഫയലുകൾക്ക് teacher-audio അല്ലെങ്കിൽ student-practice പോലുള്ള പ്രിഫിക്സുകൾ (prefixes) ഉപയോഗിക്കുന്നു. • ഘടന വിവരിക്കാൻ ഞാൻ JSON ഉപയോഗിക്കുന്നില്ല. • ഒരു പുതിയ ഫോൾഡർ ചേർക്കുന്നത് ആപ്പിനെ സ്വയമേവ അപ്‌ഡേറ്റ് ചെയ്യുന്നു.

പാട്ടുകൾ ടാഗ് ചെയ്യാനും എനിക്ക് ഒരു മാർഗ്ഗം ആവശ്യമായിരുന്നു. ഇതിനായി ഞാൻ ഒരു JSON ഫയൽ ഉപയോഗിച്ചില്ല. പകരം Drive metadata properties ആണ് ഉപയോഗിച്ചത്. നിങ്ങൾക്ക് ഒരു ഫോൾഡറിലേക്ക് നേരിട്ട് key-value ജോഡികൾ ചേർക്കാം. ഇത് എല്ലാം ഒരു API കോൾ കൊണ്ട് തന്നെ സാധ്യമാക്കുന്നു.

സെറ്റപ്പ് (The setup):

• Hosting: GitHub Pages (Free) • Auth: Google Identity Services (Client-side only) • Storage: Google Drive • Database: ഒന്നുമില്ല. ഫോൾഡർ ഘടനയാണ് മോഡൽ. • ആകെ ചിലവ്: $0.

ഒരു ടിപ്പ്: 30 ദിവസത്തിന് ശേഷം Drive പഴയ റിവിഷനുകൾ നീക്കം ചെയ്യും. അവ സൂക്ഷിച്ചുവെക്കാൻ നിങ്ങൾ keepRevisionForever എന്ന ഫ്ലാഗ് (flag) സെറ്റ് ചെയ്യണം.

ഇതൊരു പൊതു ഉൽപ്പന്നമല്ല. എന്റെ കുടുംബത്തിന് വേണ്ടിയുള്ള ഒരു വ്യക്തിഗത ടൂൾ മാത്രമാണിത്.

പണം ലാഭിക്കുക എന്നത് മാത്രമായിരുന്നില്ല ലക്ഷ്യം. രണ്ട് വർഷത്തിന് ശേഷം ഒരു ബട്ടൺ അമർത്തിയാൽ മതി, എന്റെ മകൾ ഇന്ന് എങ്ങനെ പാടി എന്ന് കേൾക്കാൻ കഴിയണം എന്നതായിരുന്നു ലക്ഷ്യം. അധികമായ മെയിന്റനൻസ് ഇല്ലാതെ തന്നെ ഈ ആർക്കിടെക്ചർ (architecture) അത് സാധ്യമാക്കുന്നു.

ഇൻഫ്രാസ്ട്രക്ചറിനായി (infrastructure) നിങ്ങൾ Drive-ന്റെ റിവിഷൻ ഹിസ്റ്ററിയോ പ്രോപ്പർട്ടീസ് ഫീൽഡോ ഉപയോഗിച്ചിട്ടുണ്ടോ?

Source: https://dev.to/vankadn/replaced-my-apps-database-with-my-daughters-google-drive-folder-1455