---
tags: ULA-EN
disqus: hackmd
image: https://assets.hackmd.io/build/emojify.js/dist/images/basic/motorway.png
description: Roadmap | ULA - universal learning app
---
# Roadmap :motorway: :world_map:
You can use this document like a short reference to all avaliable and planned features. We use it for inspiration, to see what has already been done and what has not.
# Material types
## richText
- [x] Write text in markdown using common tags:
- [x] h3-h5 `### Header with depth level 3`
- [x] em `*emphasized text*`
- [x] strong `**bold text**`
- [x] blockquote `> quotation text`
- [x] image `![alt text](https://path/to/file.jpg)`
- [x] block image (full width)
- [x] intext image (small)
- [ ] custom image with styles (position, size, border, etc) `[image | path/to/file | right | 200 | 100 ]`
- [x] unordered list
- [x] ordered list
- [ ] horizontal rule (hr)
- [ ] strikethrough (del)`~~deleted~~`
- [ ] link
- [ ] to local materials
- [ ] to web materials?
- [ ] emoji `:smile:`
- [x] Embed video, audio into text by:
- [x] local link `videos/lecture1.mp4`
- [x] network link `https://bbc.com.ua/learn-english/001.mp3`
- [x] youtube link `youtu.be/videoId`
- [ ] media material (with extra data e.g. timed phrases, quiz, etc)
- [x] Embed sounded word into text with `[[text]]` or `[[text | path/to/audio]]`
- [ ] Cards (`image + text + translation + sound`)
- [ ] from other material address
- [x] Embed quiz:
- [x] single correct answer `- ( )`
- [x] multiple correct answers (from zero up to count of variants) `- [ ]`
- [ ] Exercises
- [ ] choose right label
- [ ] fill the gaps
- [ ] Collapse/Expand (spoiler)
## fileCards
Put together small:
- [x] audio file + text + image (into card)
- [x] play by click on it
- [x] exercise
- [ ] playback
- [ ] play all (like large media)
- [ ] speed
- [ ] drill/dictation mode
- [ ] Multi file relations?
- [ ] One image --> multiple audios?
## richMedia
Put together large media file + other timed data:
- [x] different sources of media:
- [x] local file
- [x] network file
- [x] youtube
- [ ] audio hostings?
- [ ] twitter/facebook/vimeo?
- [x] timed phrases (captions/subtitles):
- [x] srt
- [x] vtt
- [x] audacity labels
- [ ] ass
- [ ] youtube transcript? `1:15 text of phrase`
- [ ] avatar images for speakers from:
- [ ] local file
- [ ] network link
- [ ] quiz tied to timecode
- [ ] playback mode
- [x] speed (playback rate)
- [ ] drill/dictation options
- [ ] repeat count
- [ ] delay length
- [ ] delay type
- [ ] relative (length of phrase)
- [ ] absolute (seconds
- [ ] view
- [ ] hide video
- [ ] book mode (with headers, paragraphs, etc)
## exercise
- [x] given
- [x] audio
- [x] text original/translation
- [x] image
- [ ] required
- [x] audio
- [x] choose
- [ ] write?
- [x] text original/translation
- [x] choose
- [x] write
- [x] order
- [x] image
- [x] choose
- [ ] timer (hurry up)?
- [ ] mix different types (audio+text, image+audio)
- [ ] which phrases to get
- [x] random
- [ ] preset
- [ ] order of phrases
- [x] random
- [ ] preset
- [ ] fake variants
- [x] random
- [ ] preset
- [ ] tolerance for user input
- [ ] universal (for all languages)
- [ ] case insentivity
- [ ] diacritics
- [ ] stress
- [ ] punctuations
- [ ] language specific
- [ ] module for custom rules
## homePage
- [x] Simple cover page with:
- [x] title
- [x] background image
- [x] logo image
- [x] 3 separated text blocks (top/middle/bottom)
- [x] avaliable translations list (choose one)
- [x] go next button
- [ ] Advanced index page:
- [ ] list of materials with extra fields
- [ ] date
- [ ] image
- [ ] description
- [ ] watched/unwatched
- [ ] tags
- [ ] material type?
- [ ] filter/sort by all of these fields
- [ ] search
- [ ] titles
- [ ] full text
# Navigation
## Drawer
- [x] logo
- [x] title
- [x] title translation
- [x] list
- [x] chapter
- [x] chapter tr
- [ ] subchapter
- [ ] subchapter tr
- [ ] material type
- [ ] translation show/hide switcher
- [ ] change translation language switcher
- [ ] player settings
## References
Ref should open part of other material from other material
- [ ] richMedia
- [ ] whole material
- [ ] one phrase
- [ ] range of phrases
- [ ] richText
- [ ] whole material
- [ ] header
- [ ] range of paragraphs
- [ ] fileCards
- [ ] range of items
# Translations
Translate main content into other languages, make it looking as parallel texts.
- [x] simple home page
- [x] oneLineOneFile
- [x] media
- [x] phrases
- [ ] avatars
- [ ] quizes
- [ ] inText?
# Customization
## Styling
Change look of any part of app by editing styles.
- [x] general
- [x] layout
- [x] contentType
- [x] add custom fonts
- [ ] separate module for your changes (to simplify updates of ULA core)
## Layout
- [ ] Change order of elements
image-text --> text-image
original-translation --> translation-original
# Localization
- [x] English text
- [ ] check spell and grammar mistakes
- [ ] separate module with all interface texts
- [ ] translate english into other languages
- [ ] Russian
- [ ] Spain
- [ ] Portuguese
- [ ] French
- [ ] Chinese
- [ ] Arabic
- [ ] delivery type
- [ ] local (prebuild in app)
- [ ] download by demand
# Progress/errors
- [ ] store errors
- [ ] where
- [ ] what
- [ ] how much
- [ ] store progress
- [ ] timestamps of activities (what did at what time)
- [ ] amount of learned materials (count of words, phrases)
- [ ] display with graphics/diagrams
- [ ] share with friends, teacher
# Content store/delivery type
- [x] local file
- [ ] web API
- [ ] categories
- [ ] notifications
## File downloader
- [x] local (originally in app)
- [ ] web (load while using)
- [ ] preload on demand (web --> local by user choise)
# Share
Share with friends interesting things:
- [ ] preview image
- [ ] navigation to particular part of app
- [ ] for oneLineOneFile
- [ ] for richMedia
- [ ] single item or whole material
# Social
- [ ] make classes around the app
- [ ] teacher monitors progress of students
- [ ] students help each other