SOFTWARE ENGINEERING development topics - UniversityOfHelsinkiCS/mobvita GitHub Wiki
Our project offers:
- FRONT-END challenges using REACT,
- GAME-based / AI-based platform for language learning
Revita is a system for language learning — for intermediate / advanced learners (not for beginners). It allows the user to practice with any text (e.g., any news story from today’s newspaper, etc.). It generates exercises for the learner. It watches the learner’s performance, and infers what are good exercises to suggest to the learner — the goal here is **personalized** learning.
It also provides analytics for TEACHERS, so the teacher (of a class) can know what the learners know / don’t know, so they can structure their lectures better. Revita is intended to be used outside the class, for additional practice, at home, on the bus, etc. (It is browser-based, and there is a version for the mobile browser.)
We now work with several pilot groups of teachers and students learning Finnish (foreign students, including at University of Helsinki).
Tasks we would like to work on in this SE Project (including, but not limited to):
- Improve system of rewards:
- at each point the learners can engage in different kinds of activities / practice.
- we want to show to the users that they are making progress from these activities:
- collecting points, ELO scores,
- awards / medals / achievements
- Follow The FLOW Theory
- Improve recommendations / suggestions:
- at various times, we want to suggest to the user what activities are available waiting for them, which activities will bring them the most benefits / rewards.
- Follow FLOW theory (!)
- suggestion (from Kasper): use one of the tiles on HOME page to introduce user to recommendations: user’s “window” to her recommendations
- Improve HELP
- At present: help information is scattered in many places:
- in-app pages
- Drupal: University web pages – very cumbersome to maintain and to access.
- GOOGLE Docs: Slide stacks for teachers and students
- introductory short videos
- vimeo: intro videos
- Ideas:
- information (?) icons placed everywhere
- …
- At present: help information is scattered in many places:
-
CITIZEN SCIENCE: (!) enable “citizens” = language teachers to configure certain parts of the system - that relate to grammar and available types of exercises
- currently various resources live on GOOGLE sheets - provide links to resources
- when a resource is modified, a developer (not citizen) must import the changes, and deploy them into the system.
- develop workflow where the citizen can:
- make edits directly to GOOGLE sheets with grammar rules and patterns (need to give them permission to edit)
- provide some fail safety (?) or backups – in case citizen accidentally messes up the resource
- give a button to citizen: “DEPLOY for test”
- give an interface to citizen to test the new rules with snippets of text – to check if they work
- give a button to citizen: “Revert changes” (undo / no good) or “Deploy to PRODUCTION” if all is good.
- Adding new gamification features: examples of desired features — new types of exercises:
- scrambled words in a sentence — user should unscramble them / reorder the words so the sentence makes sense.
- Finnish pronunciation — the system has a model that evaluates the quality of pronunciation, the system should give the user feedback about the quality.
The back-end provides APIs that support these functions. The Revita team will provide APIs to the back-end functionality.
The SE Project group will concentrate on:
- working out and management of specifications of desired features with the Project Team (“customer”)
- work on the front-end, using the APIs.
The environment was set up by the TOSKA Group, runs on servers in the Computer Science Department.
- React
- Sentry (linked to SLACK for notification)
- Cypress tests
- Github (deployment to production and staging through github)
- …
The backend is in python, using mongo DB.
Various external components are used, including:
- 3rd-party tools running LOCALLY (on our servers), e.g.,
- for various languages: many analyzers, many parsers, etc.
- speech generation (FIN) and speech recognition, etc.
- 3rd-party services running EXTERNALLY, e.g.,
- speech generation (RUS) from Yandex, many dictionaries (from Sanakirja / Kielikone), etc.
The project is especially suitable for people who are interested in
- AI-based games / gamification in learning,
- in establishing a good communication with the user.
We follow the **FLOW** Theory of learning — a leading theory in education today — where some of the key principles are:
- the user’s goals are clear at every step of the way,
- the user at all times has a strong sense of making progress
i.e.: the user should never feel lost or helpless, not knowing what she is doing, or why she is doing it, is not “floundering”, not lost at sea, etc.
- The prototype system is running.
- You can check the PRODUCTION system at: revita.cs.helsinki.fi
- The STAGING system is at: mobvita.cs.helsinki.fi
- The LESSONS feature is available only on staging.
Additional Project documentation is at: helsinki.fi/revita
__________________________
Revita is developed for several languages, the ones that are most developed — in use in language learning at several universities, including University of Helsinki are: Finnish, Russian. (Coming up behind them are Italian, German, Swedish and English, but those are still BETA versions.)