Project Summary
Some History
Revisaid, a contraction of Revision Aid, is open-source software that aims to make revision much easier than it currently is. The project is written in wxPython and vanilla Python, and is released under the terms of the GNU public license .
It was originally designed to help its sole user remember amino acid structures via a series of bash scripts, but has since evolved to the point where it can be used to revise pretty much anything. There is, however, an emphasis on remembering visual structures, so your revision may be better suited if you have a lot of images to hand.
Project Status
Active and Alpha, subject to a lot of change. The software is likely to enter beta phase anywhere between March-June, when the architecture becomes a bit more maintainable. Most of the project's stated features are already implemented, they're just a bit buggy.
Versioning
This project uses a "X.Milestone.Minor.Micro" versioning system.
Micro: Very small bug fixes (a few lines of code that would otherwise break the program).
Minor: The addition of one or two new features, or small changes in program architecture. Backwards compatibility with saves from old versions.
Milestone/Major: Drastic changes in architecture, many new functionalities, and no guarantee of backwards compatibility for saves.
X: Whenever the developers feel like the program has undergone another iteration. It's mostly a morale thing.
N.B. Each milestone version will come with a new set of documentation.
Future Features
The following functionalities are either planned for development or currently being implemented.
Short Term (weeks-months)
- Release on Mac OS
- Release as binary packages for all operating systems (unsure about licensing, may take a while)
- "Oracle" program that runs test data and produces debug reports.
- Create proper GPL prompt first time run
- Module to create "Release Standard" saves
- Use of probability in quizzes
- Actual use of probability
- Change config.py to a .cfg file
- Dynamic menubar, allowing modification & binding through config files
Long Term (months-years)
- Scripting language, to allow the creation of facts, quizzes, and topics with greater ease than a GUI
- Track statistics over time, showing improvements in certain topics
- Add 'MCQ' ability to quizzes, various other options rather than typing in what you've already done.
- Allow custom revision plans to be written by the user, that detail quizzes/topics.
- Drag & Drop image interface
- More developers!!!
- Plugin API
History
Features that have been completed are displayed here.
Enable quizzes
Enable full quiz functionality
Release on Windows XP-7
Language pack support
Allow program to be successfully started from locations other than its folder
Save facts/topics/quizzes to XML
Import facts/topics/quizzes to XML
Docstrings for all non-trivial functions and classes
Allow emailing of bug reports, feedback, and bad translations.
Full PEP8 adherence
Docstrings for every module, class, and function. Automatically generated documentation (pydoc) which will be hosted separately for each release.
Language packs for several different languages.
Hiatus
Features whose development has either been planned or attempted, then back-pedalled due to greater priorities or a poor estimation of the work involved. There is potential for these features to be revived at some point.
- Create, save & import namespaces
Pipe Dreams
The following are functions that would be nice, but are not currently under active development. In fact, some may be better suited to development as plugins, in order to keep the program nice and lean.
Feel free to mail suggestions to revisaid@gmail.com - if it sounds cool, it's in.
- GPL license prompt, along with proper installer/packaging
- Release on Raspberry Pi/Android. (The base engine should run on either of them, but a GUI hasn't been made yet. Watch this space.)
- Achievement system!
- AI, which selects topics that need more revision than others according to collected statistics
- Support for music recognition (playing a snippet of music & then answering questions)
- Support for video recognition
- Daemon scheduler; allowing the user to set a time when they want to revise, and the program popping up at that time.
- Multiple user support. An arbitrary number of people should be able to submit their programs as slaves to a master program, which sets them quizzes.