@page_title@
@context@
@subnavbar_link;noquote@
Resources
Design Notes
Release Notes
- This is version 0.10. It's a "technology preview" because the
package is under active development and not fully tested. The
API and data model are reasonably stable but may change.
- I use a native UNICODE postgresql database. I put the line
encoding system utf-8 into
serverroot/tcl/zz-postload.tcl but I don't know if
it made any difference.
Feature list
Implemented features are overstruck. Current priorities are in bold face.
- when creating a word, make ortho tests in two directions
- make the list of tests prettier
- Bugs:
- Can be given word tests for words without definitions; these are
impossible to pass
- Random testing will not test you on sentence groups
- Ordering of test-2 doesn't match test.
word tests don't respect testing locale
- Lots of imported pinyin still has numbers
- lots of imported definitions have curly brackets
random testing doesn't do anything interesting if you haven't
added anything to your lists; instead it should just
grab something, anything.
your scores should instead be a list of all tests you either have
results in or have put on your list; ie, merge tests and
your tests.
can't delete definitions; get error on edit
Deleting words fails if definitions are present - should cascade
- Store words
store words
store definitions - support both links and new
text as definitions
store phonetic spellings
- store grammar relationships between words (is the plural of, etc)
- standard category trees (parts of speech, etc)
- Store licensing information for all content (public domain, GPL,
user-only) - via category?
- Store information about frequency of appearance of words
- Some prioritization of words, so that some are shown less
frequently when you get them right a lot
- stroke order (via picture?)
- Store Sentences
Basic sentence storage
- categorize sentences
store sentences in groups (maybe category is enough?)
- store information about which words are in the sentences
store groups of sentences and put a useful label
on the group
- Scoring
- Consistent rules for storing scores - ie, all scores are 0-100, so
getting a word right is 100, getting 3 of 5
sentences is 60.
- When highlighting errors, do forwards and backwards string match
to isolate the problem area.
- Testing
handle skipped questions
- fix detection of empty answer keys in test-2.tcl
- handle a test with no q's
Fix bad answers (my answer is correct, edit anwser) for
all for just you
- Show last 5 results and allow filtering out of such words in test
- add other types of tests:
- full sentences
- reverse direction for words (from local def to foreign word)
- phonetic-based
- sound-based tests
- Better determination of what to test - frequency ranking of tests,
or lesson-based testing (from categories?)
- "you've gotten this right 5 times in a row; only show it rarely in
the future? y/n
Use a t/f field in tests so that they can be taken off the list
without losing test results - mooted
- Data
- input the full IPA and example words in English, other languages
(54 IPA characters now included in install)
- Input Dania to the live data, including example words
Input the first Chinese words - first 3000 or 6000
- input some words and definitions from a non-english
language
- Input some chinese 2-character words
- Input my Danish lessons (copyright issues - need to restrict access)
- Import/Export capability
- CSV export of
words, sentences, phonetic alphabets
- Import a CSV file
- CSV import of
words, sentences, phonetic
alphabets
- export to file - ie, handle mime type correctly
- find and implement standards. IMS? XML? Dict! Moby.
- Import/export of tests? SCORM?
- automatic lookup of external web services
- Live outgoing feed, RSS etc
- Framework for syncronizing new data
- automatic matching on words instead of creating new words
- confirmation/conflict resolution pages
Auto-generate examples by looking into phonetic
spelling okay, now do two examples
- Store sounds
- pronunciations of words
- pronunciations of sentences
- provide simple online editing tools (trim .2 sec from front or
back, etc) so that people can improve their own uploaded samples to match the others
- audio tests: see a word, upload your pronunciation, grading by 1)
grading yourself after hearing your upload sandwiched between native speaker examples 2) asking for someone to grade you.
- round-trip audio test: you are given a text. You record yourself
and upload it. Someone else transcribes your recording and you can compare that to the original text.
- Printable test pages (flashcard mode; test mode)
- Utilities
- Show tooltip/link for every foreign word on the page
- "another useful thing: a bookmarklet: so that while I'm reading a
chinese page and I run into an unknown word I select it and hit the
bookmarklet and I get both the dictionary entry plus the word gets
added to my list. that way I can be sure that whenever I look up a
word it will also get added to my list"
- scan a specified text and determine how many of the words I
already know
Store and allow changing current working locale
Add a wizard for directly adding word+def to word list
- Navigation & Interface
Use subnavbar to show locale settings and subglobal
nav
write a flow map for the whole thing
- Do the UI improvements from my paper notes
Put "Add another word" link on word-edit
- Consolidate Words, Sentences, Locales into hierarchy, with Locale
list, then per-locale page, then sentences & words
prettier formatting for the white pseudo-button
- Coding Hygiene & Platform
set and retain the working locales
move everything into procs
- Add UI for controlling sort order
write a data dictionary/diagram
Merge vocabulary and vocabulary-test
redo subnav prep as vocab::conn
implement the flow map in the new subnavbar
Think hard about data model for tests and sentences: put
sentence hint in test, not sentence?
YES. should tests have user_ids? NO.
Use subnavbar to show locale settings and subglobal
nav
- Put docs into Docbook
- use pretty urls
- Write test cases for all of API
- Paginate all the lists
- Eliminate all of the group count views in favor of paginated lists
that show group count in filter blocks
- move all data into content repository
- Performance Tuning
- cache the phonetic chart
Refactoring list
- Make all hyperlinks (export_urls) calculate base url with
package_awareness
- Enable sort/filter of multiple includes on the same page
Make vocabulary-trainer use the same subnav structure as vocab
- Move locale information into real table (extension of ad_locales,
with phonetic alphabet name)
- Implement permissions
- Set up at least two roles, student and editor
- Enforce roles in all procs and in UI
capture a definition during word creation
Revise front page into link/portlet thingie
provide word data via API call
Don't show button in view mode of word-edit