zeeguu / api

API for tracking a learner's progress when reading materials in a foreign language and recommending further personalized exercises and readings.
https://zeeguu.org
MIT License
7 stars 19 forks source link

Students invisible when joining second classroom #198

Closed mircealungu closed 3 days ago

mircealungu commented 2 weeks ago

As reported by one of our teachers:

Last year, our colleague CL, teacher German has started with Zeeguu too. Some students follow both French and German classes. The students who first had an account in French class and then added German, were transferred to the German class in Zeeguu and get deleted/lost (I do not see them anymore, nor their read articles) in the French.

mircealungu commented 2 weeks ago

I guess we have to allow a student to belong to multiple classes at the same time.

Indeed, a student can only belong to a single class at the moment, and this means that when they join the german class, they don't belong to the french one, so this is why the french teacher can't see them anymore.

This will have a few implications for both the fontend @igawaclawska and the backend @tfnribeiro

tfnribeiro commented 2 weeks ago

I will start looking it to this, the preliminary investigation seems like I will have to do the following:

igawaclawska commented 2 weeks ago

I will look into adapting the UI and front end of the Onboarding steps and Settings so that they support multiple classrooms

mircealungu commented 2 weeks ago

Cool. Tak to both!

@iga: onboarding can stay the same. Settings will need to be adapted indeed!

On Thu, 29 Aug 2024 at 15.34, Iga @.***> wrote:

I will look into adapting the UI and front end of the Onboarding steps and Settings so that they support multiple classrooms

— Reply to this email directly, view it on GitHub https://github.com/zeeguu/api/issues/198#issuecomment-2317675814, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADRNB7QFXOK7I4BFFZCMZDZT4PN7AVCNFSM6AAAAABNJ6RXAGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMJXGY3TKOBRGQ . You are receiving this because you authored the thread.Message ID: @.***>

tfnribeiro commented 2 weeks ago

I have done some work on this and I believe that the backend is set-up to allow multiple classes.

@igawaclawska: Some of the data will change from the backend (we used to expect 1 int ID and now we will get an array), so maybe I will make sure to update all the endpoints in the frontend and then you could do the UI to display/remove the classes - this will be next week though. Need to slowly go through all to make sure nothing is missed.

@mircealungu I can see maybe there could be an opportunity for refactoring - especially in some of the permission methods, where I was a bit confused what is the purpose of having different calls. For instance, the top I believe it implies it's a Teacher (as we are checking the TeacherMap), but I am actually not so sure.

image

image

igawaclawska commented 1 week ago

@igawaclawska: Some of the data will change from the backend (we used to expect 1 int ID and now we will get an array), so maybe I will make sure to update all the endpoints in the frontend and then you could do the UI to display/remove the classes - this will be next week though. Need to slowly go through all to make sure nothing is missed.

@tfnribeiro: ✅ Okok. I can start by mocking up some variants of it in Figma, and then once the endpoints are ready -implementing the one we like most.

tfnribeiro commented 1 week ago

Okay, I feel like I have the functionality working here is the POV of a student:

https://github.com/user-attachments/assets/f1f4a903-9b4c-4365-befa-2b44d6f6408e

If a code is invalid:

image

tfnribeiro commented 1 week ago

Some considerations, Zeeguu allows you to change languages, but by default you have a "main" language - if a student is in both German and Danish, they'd have to go to the settings to switch to see the homepage update.

For now, Classroom shows all the texts independently of the class they come from - but an alternative could be to allow only to show the language that is the same as the one they are learning. (Might help solve some of the confusion).

Currently, there is no confirmation when leaving a class, but I think that should be implemented to avoid mis-clicks that make the student leave immediately.

igawaclawska commented 1 week ago

I'm currently also collecting some considerations related to multiple classroom support. I will post them in a bit.

igawaclawska commented 1 week ago

Currently, it seems that students are able to view content from all classrooms at once. What are your thoughts on allowing students to be part of multiple classrooms but only have one active/visible at a time? This could solve the issues with translation language confusion (and perhaps with exercise generation).

Students should also be able to see which code belongs to which classroom (language and optionally teacher's name)

igawaclawska commented 1 week ago

Another question - how are exercises generated in the classroom setting? Are they based on the content provided by teachers that students translated, or are they generated based on both Zeeguu recommendations and texts from the teachers that students translated? Or do teachers design them?

tfnribeiro commented 1 week ago

The active class could work, but again - if that's done through the settings it might be a bit annoying to navigate 3 screens to change back and forth. But for now I think it could be the way to go so the functionality "looks" the same as before essentially.

The exercises are just based on the translated words, the classroom feature allows the Teachers to see if the students are reading/doing exercises and to manually share texts to the students, but this might not be used as much.

So in their dashboards teachers can see what words they have translated/how much time they have spent reading e.g.

image

image

igawaclawska commented 1 week ago

The active class could work, but again - if that's done through the settings it might be a bit annoying to navigate 3 screens to change back and forth. But for now I think it could be the way to go so the functionality "looks" the same as before essentially.

The "Current/active class" option, besides settings, could also be added as, for instance, a dropdown on the side navigation or on the homepage - underneath the Classroom tab. If not now - we could consider it for the next iterations

tfnribeiro commented 1 week ago

That's a good idea!

igawaclawska commented 1 week ago

What happens from the teacher's point of view when a student leaves a classroom and then re-enters it? I know that if students leave a classroom, their progress is not visible to the teacher. What happens after they re-enter? Will their progress, exercises done, and translated words be reset to zero or preserved?

tfnribeiro commented 1 week ago

I am quite sure it's preserved - essentially the mapping just means that the query in the backend can retrieve the data related to the language. So essentially the teacher can see what they have been doing in the language even before they join the class.