I am building a language learning app. I would like to incentivise the users with an achievement / xp / levelling system.
There are 20 themes with each 3 types of exercices, and 4 levels of difficulty.
I have an “Achievement” page and collection. Users and Achievements are connected.
If the answer is correct, XP User is updated with more points, and the total is correct.
If the user complete one exercise, the property Exercise_Attempts is correctly updated.
What I want to achieve:
When a user complete 1 exercise for example, he unlocks the achivement “First Exercise”. I want Adalo to understand that the condition for this achievement is met.
When a certain number of XP is reached, the level is automatically updated if needed
I also want a progress bar to show the levelling. I have the total XP, I have the xpmin and xpmax for each level, but I would like a progress bar that shows exactly where the user is in the current level.
Any help would be greatly appreciated before I throw away my pc
This should be possible to implement in Adalo, at least to some extent.
for progress bar levelling, you can use 2 properties with XP: current level XP and total XP.
for level auto-update, I can see several options here. If there is a limited number of levels (e.g. just 4), you can simply add several conditional actions on the button. If it’s more complicated, you can have “levels” collection and store levels and “levelup points” there, and use this collection to create a single-item list to update level to the next one. Also you may try to find a formula to update the level right at the time when XP are changes (e.g. if “levelups” happen at 5, 10, 15, 20, then simple formula INT(XP/5)+1 will give you current level, if we start from level 1).
for the achievements, you can also have a collection of “possible achievements” and use it to create a single-item-list of the next achievement. The idea is that when user reaches a certain stage, there is some criteria which allow you to display only one item in a list from “possible achievements” (which you need); and then in this list you put a button to create a user-connected achievement or a timer to do that automatically.
Generally speaking, you’re asking a question on a very wide topic. My advices above may be useful, but a lot depends on the details: your business requirements, user flow, screens setup, app logic, etc etc. So in my opinion it is quite difficult to explain the whole topic with all its nuances in a few forum posts.