Moon-Jumper
As of 5/10/2012 I am moving this out of In Progress. I intend to return at some future point to continue work, but in the interim, the only efforts I intend to put forth are to recruit users, possibly implementing any strong requests. It should be noted that the Gamification code was left in an incomplete state on dev and I should be able to pick up where I left off when I wish to.
Moon-Jumper is my cognitive improvement site. I consists of three components:
- Moon-Jumper Quiz
- Moon-Jumper Journal
- Moon-Jumper Dual N-Back
- Moon-Jumper Marketing
- Moon-Jumper Objectives
- Moon-Jumper Working Memory
Development on this project has been on hold for quite some time, but I would like to get it moving again. The first step would be to re-deploy much of it using GhostMVC.
The next step is to build the quiz from scratch (again) this time incorporating the concept of 'done' and of spaced repetition. http://www.wired.com/medtech/health/magazine/16-05/ff_wozniak?currentPage=all http://en.wikipedia.org/wiki/Spaced_repetition
Look here(http://www.webhostingjury.com/) for a better host than D5, they are getting slow, very annoying. I could run this off AWS for less than $200 a year (on a tiny instance) which would instantly give me some capacity to scale.
http://colorschemedesigner.com/#2T61T6SRRw0w0 (save a copy of this somewhere)
Dev Back-Log
v2 Log
Must Fix for Alpha Testers
- The backslash character needs to be escaped for input (at least in the quiz)
- Remember Me
- quiz/manage
- Move search to another page
- Change "Quiz Backlog" to "Want to Know"
- Change "Quiz Deck" to "Already Know"
- "My Courses" to "Enrolled Courses"
- "Owned *" to "My *"
- I believe that when I started a new quiz in DT where my time was <10m, I switched over to the Quiz timer. I'm also not sure I have escape logic for DT over.
- I once observed the unseen count go negative
- Sometimes the re-ask flag fails. I believe this has to do with the negative count
- Need tutorials --------------
- Encryption Key
- How does quizzing work
- Memorize vs Spaced Repetition
- Quizzes and Curriculums
- Using the journal
- Daily Training
- How to play DNback
- Creating Quizzes & Curriculums
- Making a Quiz
- Making a Curriculum
- Bulk Add
- Best practices
Move To Live
- Start Alpha users (testers)
- BUG: if you copy a value from session to a local variable, changes to it will not be reflected in the session. For instance, if a question is copied to a local variable and the score is updated, the new score will not persist.
- Write tests (at least some)
Gamification
- Render rank to homepage
- Recent Achievements and points awarded
- Score for next belt
- Upcoming achievements
- Add all belt colors
- Start adding other achievements from list
- Rough out a calculation for achievements (should take 1 year of regular training to reach black)
- Check for rank change when updating user points
- Achievements
- Set email
- Set Encryption key
- Adding a quiz
- Adding a curriculum
- First NBack
- First 3-back
- First journal entry
- First daily training
- Daily training 3 in a week
- 6 in a week
- 3 in a row
- All sorts of 'anniversaries' 10 NBacks, 100 questions, 5 quizzes...
Testers
Before the testers start, make a few of the crucial tutorials. Do some simple screencasts. Also, get a few quizzes and curriculums loaded up so that the users will have something to learn that will interest them.
- 1st Pass: Track down bugs and major usability issues
- Bells
- Aaron
- Wade
- 2nd Pass: Start generating content and seeing how to engage users
- Lauren
- Mikey
- Rileys
- Scott
- 3rd Pass: Confirm that the site functions, draws people in and performs as expected
- Dave
- Alex
- Parents
- Aunt Pam
- Graces
Secondary Log
Journal
- Handle case that user has lost their encryption key
NBack
- Re-record NBack sounds
- Test speakers button at start of dual NBack
- Improve NBack Graph
- Better data labels
- Show after NBack
- Show after all Daily Training NBack
- I think it's registering Miss's even when it's registering the corresponding keypress (hard to reproduce). May be a timing issue.
Quiz
- When user hits save show "Saved" for 1 second then fade out
- Quiz description as mark-down
- Make sure links open in new tab
- Bulk add should trim any odd-blank rows (currently inserts an empty question)
- Only show Owned content divs on quiz manager if there is owned content to display
- Remove old quiz management code
- Convert questions to objects
- For quiz training, change minimum deck size to 10
- Put the 'repeat' function back into Spaced Repetition
- Don't allow quiz timeout until question answered correctly
- Customized spaced repetition
- I am collecting data in quiz_tbl_repetition_statistics (user, accuracy, delay, correct)
- I want to find the optimal, per user curve based on that data
- I also want an optimal general curve that users will start on until the data fills in
- Have the home/cleanup page hit with a cron job once a day
- Quiz reversibility
- Images in questions
- Sounds in questions
- Make Quiz Descriptions more accessable
- From Memorize toolbar
- From SR toolbar
- For quizzes from manage page
- For curriculum quizzes from manage page
- Question changes
- When a user edits a question, unlink the old question and link the new one
- Change cleanup script
- Alert users when they start quiz training if their questions are out of date, then update
- Move question to another quiz in curriculum
- Add an approve step to bulk import (show q&a before they are put in the database)
- Only display Encrypted for encrypted entries
- View Journal entries not wrapping correctly (only when extremely long with no spaces)
- Quiz Manager
- Show all current quizzes in a curriculum
- Remove quizzes in that curriculum from backlog
- Return quizzes to backlog
- When removing a curriculum, give the user the option to leave questions in deck
- Let user add specific quizzes from a curriculum
- Let user add specific questions from a quiz
- When a user transitions a public quiz to private, warn them that any current users will still have access to the quiz
- Add a time limit for quizzes (this is sort of necessary for basic math quiz)
Root
- Change menu to select box in small format display (Hanselman hack)
- Remember me on this computer
- Homepage Dashboard
- email address
- next 10 quizzes in backlog
- small nback graph
- journal entry page
- A tutorials menu may not be optimal, perhaps a sub menu on each other menu, or one item on Moon-Jumper with sub-sub menus
- Make top level menu's links
- Allow users to customize their daily training settings
- Handle home/trainingSettings
- Check that trainingTime is a number
- Issue a warning if training time is to short
- Estimate how much time will be spent on quizzing
- Add a reminder to the homepage for quizzes&curriculum (if backlog empty)
- for confirm email, pass in both email and hash, match both to confirm (instead of just hash)
- Put a floating box in the upper corner for daily training ("Continue Daily Training") link to next step.
- Auto Log-in
- Use cookies
- If user goes to a login required page, allow them to auto-login and stay on the page.
Gamification
- Animate adding points
- Add the "incrementing" sound
- Animate level up with sound
Someday
- Send questions to front-end using Ajax and have JavaScript handle the whole quiz, sending data back as you go.
- Focus monitoring
- Learning profiler (audio, visual, graphs, numeric, words)
- Look into grants
Marketing
- Ask friends and family to spread the word
- Research marketing
- MSU
- Find most taken classes and build content targeting them
- Put up fliers posters, take out ads
- Create a short cut to get users up and running quickly (QR code?)
- High-School
- Quiz Bowl teams
- Talk to my former teachers
- Web
- Find sites/blogs that could be interested:
- Life-Hacker
- BoingBoing
- Try to get them to cover the site
- Find sites/blogs that could be interested:
KS
- Offer magnets / badges as users move through ranks
- Store shipping address
- Allow users to buy 'stuff'
- Order magnets/badges (Dad)
Post KS
- forums.moon-jumper.com
- bugs.moon-jumper.com
- Hire GW for:
- Android App
- iOs App
- Rebuild the desktop app
- Build a mobile version of the site
- Contract content creators
- Memory Palace training
Tutorials
Need To Know
- Email is for login and recovery only
- Regular training is necessary for memorization
Basic
- What is spaced repetition
- What is Dual N-Back
- How to journal
- Moon-Jumper journal app
- What is a curriculum
Theory
- How is MJ different (memorization/training)
Intermediate
- How to add a Quiz or curriculum
- Journal Encryption
Advanced
- Making good quizzes
- Making good curriculum
Maybe-someday-I-hope
Small office with a few people. Another developer (intern or full-time, as allowed), someone to look for grants and do business relations and someone to do user research. Small office - developers share a machine (always pairing). Work 4 10-hour days, the first 3 days beings solid development and the fourth being QA, release, retro and planning.
Have machines going for unit testing, integration testing and UI testing constantly. Every time something goes out to dev, it gets a full suite of tests run. These could even be EC2 machines so that no matter how large the test set gets, we can always run it quickly.