App for learning English words

Hello guys, I am creating an app for my English students to help them learn words. The concept is based on 5000 most common English words. I have created packages of 100 words students will unlock (charge per package) and then work with these words. So far I have a table with packages (name, short description, picture, tag, relation column showing all words in the package), a table of users (with true/false column for each package the user purchased), table of all words (word, translation, and allocation to particular package), and table of “my words” which should be user specific according to purchased packages. My problem now is how to transfer purchased words from the table of all 5000 words to “my words” table, where each user should see only his purchased packages/words. Any idea? Thank you. Luboš

Hi Lubos,
Firstly welcome to the community!

What I’m thinking is to try to have a relation relevant to the “all words” and “my words” tables.
You could also try filtering on the purchased column and maybe not need the “my words” table at all.

1 Like

So you have 50 packages right?

I think you got most of the structure right. My changes would be:

Instead of using multiple columns for your users table to indicate which package they purchased, you can just use the App: Sales sheet (assuming you’re using Stripe’s integration) data to know which user has purchased which package(s).

Make a duplicate of the App: Sales sheet in a new sheet using the formula:

={'App: Sales'!A:Z}

Then you will have that Sheet available in your Glide data.

Create a multiple relation from the Users sheet using the email column to the App: Sales sheet, then a joined text column to get all the packages that the user has purchased.

Then you don’t need a “My Words” table. Just filter the original “Words” table by word’s package is included in user’s purchased packages.

2 Likes

Hey, thank you for your welcome and great suggestion. I will definitely try it!

Thank you for your suggestion. Yes, I have 50 packages. I might use Stripe for managing payments. When referring to Sales app, do you mean Field Sales App that I found on Glide website? I will explore it. Thank you for your great points. I’m thinking not just in terms of knowing which user purchased which package tracking, but also how to get user only words he purchased in the package (therefore I was initially thinking of “My Words” table). But you are right, I might get rid of this table if I somehow figure it out in the general list of all words through filtering and relation options.

What I said about Sales is that when you let your users purchase through the app’s buy button (Stripe) then it will generate an App: Sales sheet in your Google Sheets.

If you have any problems implementing that feel free to tell me.

1 Like

I see, I got you now. Perhaps, at first, I would like to offer the app just to my students, so I would handle payments individually. Once I decide to spread among general public, I would definitely need to automate payments.

I managed to get rid of “my words” list of purchased words and instead, I used filtering and visibility options on general Wordlist of all words to show just words from purchased packages (I set up “Users” tap that is visible only to Admin and through toggle button I can make purchased packages / words visible or not. This would solve adding purchased words in users wordbank. Now, I’m facing a next step, creating some play with added words. My idea is to use swipe cards with displayed English word and Entry text field for students to type down Czech translation for the word. Also, I would like to track student’s progress on each word (say 25%, 50%, 75% and 100% learned). I have already tried this in another app and it worked fine, however, this features required, that each student had his own list of words. Here I’m facing an issue, as I have currently only list of all 5000 words, which is nice and neat as I won’t need overload of rows with more students working with the app. But the question being is if I manage to implement the same features like before. Thank you so much for your support. I do appreciate it.

Hmmm, now I’m trying adding columns such as Progress bar in the general list of all words and make the column user-specific… This allowes different student only see his progress. This seems to be exactly what I need. Do I get it right?

Yes, user specific columns would be the way for each user to track their own progress individually against the same list of words. Sounds like you are doing it correctly.

2 Likes