There were few technically challenging tasks in developing this app, recorded below for the curious.
If you notice any mistakes, you now know why, so kindly notify an admin
This Python script is run once once the Arabic lyrics before the app is built and deployed. For each song, it runs the following function over every line.
The words of each line are extracted to do a letter-by-letter coversion. For example, 'كِتَابٌ' registers as 'k-i-t-a-a-b-un'.
At least two layers of iteration within the word are needed: one to track the current letter and one to look ahead at what vowelling should go on it,
For instance, a fatha could be the start of 'a', or 'ā', so it's necessary to check all characters until the next consonant before deciding the vowel.
The 'post-pass' runs over the final output to check whether:
any words need to be corrected, e.g. proper nouns get capitalised;
any words should be merged e.g. 'kitābuLlahi' is preferable to 'kitābu Llahi' by our design choice.
This is neither a video-streaming service nor even screen-sharing; it mimicks screen sharing by sending the playlist metadata (verse index, current song, title etc.) using Firebase (Realtime Database). Every change sent by the host, such as changing the verse or the song is reflected immediately in the viewers' screens, provided they are on a stable connection.