forked from oppia/oppia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
487 lines (395 loc) · 28.2 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
This file contains a summary of changes to the Oppia code base. For a full changelog, please see
https://code.google.com/p/oppia/source/list
v1.2.8 (12 Aug 2014)
--------------------
General features:
* Add a user dashboard page that shows private, beta and released explorations.
* Make Oppia installable on Windows, with all tests passing.
* Speed up the 'Contribute' gallery.
* Add a friendlier 404 error page.
* Add a robots.txt file.
* Download a local copy of MathJax, so that we have a backup if the MathJax CDN goes down.
* Show navbar dropdowns on-hover.
Widget improvements:
* Make the input field in the non-interactive math widget larger, and add a preview.
* In the LogicProof widget, stop converting spaces into tabs as the user types.
Editor features:
* Add a draggable handle to the rule tiles.
* When the date is today's date, show only the time in the UI.
* Use a help icon throughout the editor, instead of sometimes using a help icon and sometimes using 'More info'.
* Make 'preview' and 'customize' links in the interactive widget accordion look clickable.
* Reduce the left padding in the list of widget types.
* Move the 'Use this widget / Cancel' buttons to the bottom of the widget editor.
* Replace the empty content placeholder message with a more positive one.
* Fix a bug where the state name display in the exploration editor is not updated.
* Fix a bug that caused errors to arise due to IE8 not supporting String.prototype.trim() or Object.create().
Infrastructure changes:
* Implement an infrastructure for continuously-running computations, together with event listeners and an admin dashboard.
* Add dependency management for widgets that make use of modules that need to be registered with Angular.
* Change frontend controller syntax to the one recommended by the Angular team.
* Use ndb.OR instead of ComputedProperty in datastore queries.
Setup and testing scripts:
* Rewrite install_third_party.sh to exit gracefully if the installation of jsrepl and node.js on the given OS is not supported.
* Add a check to the integration test script to ensure that no local server is running.
* Speed up the backend tests significantly by running them in parallel.
* Use Chrome as the browser for the frontend tests, due to PhantomJS's installation being buggy.
v1.2.7 (19 June 2014)
---------------------
UI changes:
* Improve the user experience when registering to make contributions.
* Fix links to tabs within the About pages.
* Feedback submitted at the END state now automatically refers to the whole exploration.
* Set a maximum width for images in multiple choice question options, so that they don’t overwhelm the rule editor.
* Update ui-codemirror to version 1.0.1.
* Separate the learner user interface into a presentation layer and a data layer, in order to support multiple skins in the future.
Editor features:
* Ensure that the state graph is never panned out of the viewport.
* Downloading exploration zip files while the exploration is being edited no longer issues a warning.
* Return only the top ten unresolved answers for each state, in order to avoid overloading the client browser.
Widget improvements:
* Add a new LogicProof widget in which students prove logical formulas.
* Remove the 'columns' customization option for the TextInput widget.
* Add a docstring for the video id in the non-interactive Video widget.
Backend changes:
* Implement schemas to standardise the backend handling of objects used by widgets (e.g. lists of strings).
* Log frontend errors to the backend, so that the developers can see and handle them.
v1.2.6 (4 Jun 2014)
-------------------
UI changes:
* Upgrade to Bootstrap 3.
Editor features:
* Allow exploration editor pages for non-private explorations to be viewed in read-only mode.
* Add 'feedback thread' functionality to the exploration editor page.
* Add instructions for embedding explorations in other pages.
* Deprecate exploration cloning functionality.
* Display an expandable warning bar for things like 'an objective needs to be specified for this exploration'.
* Fix a saving bug: when a rule with a variable is selected, and then changed to a rule without one, the extraneous variable from the original rule is kept, causing a backend save error.
* Fix a bug that prevented changes to rules from being saved after a new interactive widget was selected.
* Fix a bug in the state minimap where the '+' button was not showing up in Safari.
* Add a help link to the parameter changes section.
* Move the 'answers received' section to the right-hand column, below the graph minimap.
* Make the jwysiwyg rich-text editor responsive.
* Move the parameter changes section into the state content section.
* Make the rule destination bubbles fixed-width.
* Clarify the labels indicating the publication status of an exploration.
* Remove non-working links in the statistics tab that link back to the state editor.
* Make the statistics tab rule descriptions slightly more human-readable.
* Move some settings-related controls to the exploration settings tab.
* Only show the 'delete exploration' button to exploration owners,
Widget improvements:
* Numeric input widget: allow decimal numbers that start with a decimal point.
* Code REPL widget: restore line numbers.
* Interactive map widget: fix response HTML bug where a zoomed-in map of (0, 0) was being shown; add a custom stats_response file to display the coordinates rounded to 6 decimal places.
* Video widget: allow exploration authors to set start and end times.
* Image widget: convert file extensions to lower case before checking their validity.
* Image widget: add clarification about which filetypes are permitted.
Windows issues:
* Fix issue 219: image uploads did not work in Windows.
* We now open zip files in binary mode on Windows.
* Fix a failure in the startup script due to Windows directory names not being case-sensitive.
Demo explorations:
* Fix a small bug in the Pitch Perfect exploration.
* Add a demo exploration that tests all the interactive widgets.
Tests:
* Update karma and associated libraries.
* Add a code coverage reporter for frontend tests.
* Add backend integration tests for reverting to previous versions of an exploration.
* Fix an issue with the test runner not deleting all datastore models correctly between tests.
* Fix an issue with the test runner not getting the correct versions of third-party libraries.
Infrastructure:
* Add a focus management service to the frontend.
* Add a new input reader for reading multiple datastore input fields during MapReduce jobs.
* Add a backend module for schema-based object validation.
v1.2.5 (16 May 2014)
--------------------
UI changes:
* Add a 'Publication Policies' tab to the site guidelines page.
* Add a 'Nominate for release' button (and associated modal) to the exploration editor page.
* Add 'community-owned' tags to community-owned explorations in the playtest queue.
* Clean up the gallery user interfaces.
* Change the color of the initial state of an exploration to pale green.
Developer-facing changes:
* Refactor the startup scripts, moving some functionality from bash to Python to make the setup process work on more operating systems.
* Fix issue 148: open a browser using the correct command in Macs, and do not fail noisily on other operating systems.
Infrastructure:
* Add a backend integration test for exploration rights.
* Add a jobs dashboard to the admin page.
* Add functionality for running mapreduce jobs.
* Add backend models for feedback threads.
v1.2.4 (5 May 2014)
-------------------
New pages:
* Add a new 'playtest queue' page.
* Add a new tab in the 'How to use Oppia' page that outlines the 'beta' and 'release' criteria for explorations, and further clarify the description of the exploration lifecycle.
Editor interface improvements:
* Redesign the exploration editor page to focus more on the state editor rather than the exploration graph, and make it generally tidier.
* Make exploration graph nodes have a fixed width.
* Rewrite and simplify the 'publish exploration' modal.
Editor functionality improvements:
* Allow each exploration to specify an objective, and make this mandatory for published explorations.
Profile page improvements:
* Show counts of a user's private/public explorations.
Improvements to the workflow for embedding Oppia explorations in other pages:
* Create a new version of the embedding script that allows explorations to be loaded only after the user clicks a button.
* Add manual integration tests for the embedding workflow.
Infrastructure:
* Use PhantomJS instead of Firefox for running unit tests.
* Add an integration test framework.
* Add an integration test for the exploration download handler.
v1.2.3 (26 Apr 2014)
--------------------
Interactive widgets:
* Add a new widget (as well as corresponding rules and objects) for inputting music notes, together with a 'Pitch Perfect' exploration that demonstrates its use.
Profile page:
* On each user's profile page, display feedback that they have submitted to explorations, and the present status of this feedback.
* Fix issue 120: change links to playtestable explorations to point to the reader view instead of the editor view.
Editor interface improvements:
* Fix the display of answers in the statistics viewer modal of the exploration editor, so that they accommodate newlines.
* Fix an issue with 'Address this feedback' links not redirecting to the state editor.
* Add a specific warning message to handle feedbackless self-loops.
* Fix issue 151: clarify the 'feedback required' message.
* Change the pencil icon in the editor page to point towards the editable content.
Gallery interface improvements:
* Move the 'Upload Exploration' button to the top of the contribute gallery page (when the uploading option is enabled).
* Color buttons that represent a 'success' action in the contribute gallery green.
Site interface improvements:
* Separate the current 'About' page into two pages: 'About' and 'How to use this site'.
Infrastructure:
* Add a simple framework for handling widget dependencies, so that if multiple widgets in the same page use the same dependencies, the dependencies are loaded at most once.
* Fix a bug in unescaping state names that have unicode characters in them.
* Add backend models for long-running jobs.
Moderator page:
* Add a list of recent changes to explorations.
v1.2.2 (24 Mar 2014)
--------------------
Editor interface improvements:
* Create separate tabs for exploration settings and version history.
* Move help links to a tab in the navbar.
* Allow older versions of explorations to be downloaded.
* Fix a bug where the versions of files included with explorations were wrongly calculated, resulting in an error when the exploration was downloaded (issue 145).
* Fix a couple of cases where the server connection error messages did not appear in the UI.
* Improve the state editor: make it draggable, make the state name and rules editable inline, widen the working space, add a feedback link at the bottom, and fix a bug where parameter values in the interactive widget selector were stale (issue 137).
Gallery interface improvements:
* Move the "Create Exploration" button to the top of the gallery.
* Allow announcements to be placed in the contributors' gallery.
* Hide beta explorations in both galleries by default.
Reader view improvements:
* Remove the green feedback button for narrow viewports.
Noninteractive widgets
* Link widget: add an option to open links in the same window, rather than a new one.
* Hint widget: require tab names to be specified (issue 92).
* Image widget: allow images with .jpg extensions to be uploaded (issue 116).
Interactive widgets
* Multiple choice input: fix the vertical misalignment between radio buttons and their labels.
* Code REPL: fix an issue where the 'code' key was sometimes missing from the data passed to the server, thus resulting in a server error.
Backend changes:
* Extend the CSRF token lifetime.
* Normalize reader answers to the correct object type, before they are classified.
Documentation:
* Add a README file to the main repository with installation instructions.
Dependencies:
* Fix an npm breakage, as described in http://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more
Admin and moderator functionality:
* Moderators can unpublish or delete explorations, and move them in or out of beta.
* Admins can ban individual users.
v1.2.1 (25 Feb 2014)
--------------------
Major deprecations:
* Deprecate the Django branch of Oppia, and remove Django-related code from the codebase.
Improvements to the workflow for embedding Oppia explorations in other pages:
* Add versioned code that allows explorations to be embedded in Course Builder and in arbitrary web pages. This code is auto-generated from a script in integrations_dev/.
* Capture more reader events, such as onExplorationLoaded, onStateTransition and onExplorationReset.
* Display a loading message before the exploration fully loads.
* Add a setting that allows the height of the exploration window to automatically expand as the reader plays through the exploration.
Reader-visible improvements:
* Add a confirmation dialog when the reader resets or navigates away from an exploration, after interacting with it at least once.
* Improve the accessibility of the reader view, especially support for screen readers.
* Ensure that the reader view supports Internet Explorer 9 and later, as well as Firefox and Chrome.
Editor interface improvements:
* Remove the separate tab for the state editor, and instead overlay the state editor on the exploration graph editor so that the exploration graph is always visible (and can be panned behind the state editor).
* Make the graph visualization responsive, so that the sizes of the nodes adapt to the size of the browser window. Make the visualization fit within a single horizontal viewport without scrolling. Add some light animation effects.
* Move the interactive widget editor inline (it used to be in a pop-up).
* Load the version history lazily, rather than each time an exploration is loaded. Show summaries of each commit, and implement reverting functionality.
* Do not show version history for cloned explorations, since they are not meant to be published.
* Improve the UI for the statistics tab. Mark rules as generic/specific in order to determine which user answers should be displayed for improvement.
* Allow noninteractive widgets to be used in feedback for rules.
* Show the full feedback for a rule in the state editor, so that contributors do not have to click in order to view it.
* Allow parameter changes to be swapped.
Changes to widgets:
* Convert all interactive widgets to Angular directives, and simplify the process for creating new widgets.
* Add a new interactive music note input widget that allows the reader to enter a sequence of music notes. The widget is still in the pre-alpha stage, and can be accessed by removing the comments in feconf.py.
* Add a noninteractive collapsible widget, which only shows its content when the reader clicks on it.
* Add validation for the multiple-choice input and numeric input widgets, and allow the latter to accept floating-point numbers.
* Remove the line numbers for the code window in the Code REPL widget, since having them occasionally causes the widget to be replaced by a blank grey screen.
* Use a static map to display reader responses in the interactive map widget.
Backend changes:
* Add a sample end-to-end test.
* Add a load test script for the reader view.
* Increase the stack trace limit for appstats to 50 lines, to ease the inspection and debugging of load test logs.
v1.2.0 (13 Jan 2014)
--------------------
NOTE: This version of Oppia is not backwards-compatible with earlier versions, due to significant changes to the datastore models.
User-facing changes:
* Do a full revamp of the user interface, including significant changes to the splash page and the general theming.
* Allow old versions of explorations to be explicitly linked to. This means that an exploration creator can embed a stable version of the exploration in another webpage, which will then continue to remain the same despite further changes to the latest version of the exploration on the Oppia site.
* Add a 'strict validation' mode for explorations, which is called before an action that affects readers of a public exploration is performed.
* Add interstitial "Loading..." pages.
* Remove the feedback tab when an exploration is iframed in another webpage.
* Add instructions for users with JavaScript disabled (to ask them to turn it on).
* There is now a wiki article on exploration design patterns that is linked to from the exploration editor page.
* Fix the YAML file upload flow, which was previously broken. This setting can now be toggled in the admin page.
* Add roles for site admins and moderators.
* Fix some bugs, including one where the graph visualization in Firefox was truncated, and another in which the 'sticky' bit was not working correctly for the InteractiveMap widget.
Infrastructure changes:
* Remove the model for States. The states of an exploration are now stored as a data blob. This simplifies a lot of things (e.g., we no longer use multiple unique identifiers for states) but is a backwards-incompatible change. States are now identified by their human-readable name, which is unique within an exploration.
* Add a new ExplorationRights model, which stores rights information for the corresponding exploration and keeps track of things like the exploration's publication status, whether it is community-owned or not, and the list of people who can playtest it (if the exploration is private).
* Implement full versioning of explorations, exploration rights, and files associated with explorations.
* Handle exploration change lists on the server side, and add metadata about the atomic changes performed to each commit.
* Use App Engine user_ids, as opposed to email addresses, for user management; this is because the former are guaranteed to stay the same even if the user's email address changes.
* Minify JavaScript and CSS files.
Changes to widgets:
* Add a non-interactive LaTeX widget.
* Remove the existing music note widget.
* Improve the code REPL widget: add a CodeMirror display, a rule for catching errors, and a large input text field for entering the placeholder code. Remove some superfluous customization options.
Changes affecting developers:
* Remove the build/test requirement in the startup script. This script now just starts up a development server, without running tests.
* Add a deploy script for making a deployment to an App Engine server running in production.
v1.1.2 (17 Dec 2013)
--------------------
Major changes:
* Make the startup and test scripts runnable without any use of sudo.
* Add commit messages to the version history log. Each message consists of an automatically-generated part (stating which parts of the exploration have changed) that is attached to a human-written commit message.
* Allow edits to multiple states and exploration-level properties to be batched in a single commit.
* Allow some configuration properties for the app to be edited via the Oppia admin interface.
* Show reader feedback in the state editor page, and allow exploration creators to mark it as 'fixed' or 'will not fix'.
Minor changes:
* Update Google App Engine SDK from version 1.7.7 to version 1.8.8.
* Links in an exploration now open in a new window, so that the reader does not lose progress.
* Add a new exploration to demonstrate the use of the coding widget. Tweak the Parameterized Adventure exploration in response to reader feedback. Remove the tar exploration.
* Appstats logging now takes place at level DEBUG instead of level INFO.
* Delay the fetching of exploration statistics at the outset, in order to make the exploration editor page load faster.
* Various UI tweaks.
v1.1.1 (2 Dec 2013)
-------------------
New features:
* Oppia explorations can now be easily embedded in any webpage using the oppia-player-0.0.0.js script in the static/scripts directory. This is done by using an <oppia/> tag at the place where the exploration should be embedded, and including the aforementioned script at the bottom of the embedding webpage.
* Explorations are now represented as zip files which contain a single YAML file and a directory for static assets.
* Published explorations can now only be deleted by an admin.
Reader-visible improvements:
* Improve the look-and-feel of the gallery page.
Editor improvements:
* Significantly improve the state editor user interface, which now includes contextual help links, a new interface for rules, descriptions of widget parameters, a three-column layout, and numerous other small improvements.
* Improve the saving flow by allowing changes to a state to be batched into a single commit. The user is prompted if he/she tries to close or navigate away from the page before his/her changes are committed to the server.
* Allow each type of object (such as a real number of a music note) to have its own specialized editor.
* Collapse the various non-interactive content textareas into a single textarea, and add controls for including videos, images, links and tabs.
Extensions:
* For the code REPL widget, make it possible for code to be prepended and appended to the reader's submission before the latter is executed, and allow comparison of the output of the reader's program against a reference output.
* Add a "Cities of the World" exploration, which was created programmatically using data from Wikipedia.
* Improve the existing binary search exploration by adding pictures and fixing bugs.
Speed:
* Make explorations load faster by batching datastore operations, and by only retrieving partial exploration statistics when an exploration is first loaded.
Infrastructure:
* Add a versioned file system for each exploration, so that images can be uploaded.
* When a user deletes an exploration, mark it as deleted rather than remove it from the datastore, in case it needs to be reinstated later.
Development:
* Modify the startup scripts to be more modular, and to require as little use of sudo as possible.
Security:
* Add HTML sanitization, XSSI protection, escaping of special characters and various other improvements.
Dependencies:
* Update AngularJS to version 1.2.0-rc.3.
* Use jwysiwyg for the rich text editor, replacing the YUI 2 library.
* Remove the AngularUI dependency in favor of ui-bootstrap.
* Try to load the JQuery and JQueryUI dependencies from the Google CDN before fetching them from the local server.
v1.1.0 (14 Sep 2013)
--------------------
Reader-visible improvements:
* Add better support for LaTeX.
* Improve the scrolling behavior in the reader view.
Editor improvements:
* Make the exploration statistics view much more intuitive: introduce a graph showing what fraction of reader entries reach each state, provide helpful suggestions to improve state content and rules, and add direct links to the state editor to make such improvements easy.
* Add links in the state editor to incoming and destination states for easy navigation.
* Display a warning if the END state for an exploration is unreachable.
* Update the exploration graph when a change is made, without requiring the editor to refresh the page.
* Add simple versioning for explorations.
Extensions:
* Add interactive widgets for code REPL and file input.
* Add new binary search and tar explorations; rewrite the combinatorics and welcome explorations.
* Allow customization of the text on the button for the Continue widget.
Admin page:
* Add a link to a simple admin page for app owners.
* Add latency and memcache counters.
* Allow an admin to reload individual demo explorations.
Domain models and infrastructure:
* Substantial cleanup of the domain modelling across the entire backend.
* Finalize v1 of the exploration data file schema.
* Rewrite the statistics models to be more conceptually expressive.
* Add pluggable storage models, thus allowing Oppia to run on Django as well as App Engine.
* Add a new datastore model for app configuration properties.
* Replace the classifier datastore model with individual rule domain objects to improve flexibility.
* Add a registry for widgets, and take them out of the datastore; they now run at the code level.
* Add a new parameter value generator extension framework, and some examples.
* Allow explorations to define custom skins for the reader view.
* Add memcache functionality.
* Add transactions around exploration update operations.
Testing:
* Add karma test framework for the frontend.
* Add lots of backend and frontend tests.
* Add flags that allow individual tests and tests within a particular class or module to be run, instead of the entire suite.
* Add a flag that allows slow tests to be omitted from a test run.
* Added a test runner that 'plays through' reader explorations.
Development:
* Start scripts now run on (at least) Ubuntu Linux and Mac.
Security:
* Add CSRF protection.
v1.0.5 (30 Jun 2013)
--------------------
* Add support for initializing parameters at the exploration level.
* Allow custom static views to be specified for rendering reader responses. (Previously, the answer was simply rendered as a string in all cases.)
* Allow an arbitrary number of non-interactive widgets to be included as part of the content of a state.
* Add a "My Explorations" page which lists the improvable states for all explorations that a user can edit, ranked by priority.
* Add more data to the exploration statistics page.
* Tidy up the appearance of the exploration graph visualization.
* Allow tests to be run on individual subdirectories by passing in a flag to the test script.
v1.0.4 (28 Apr 2013)
--------------------
* Add tooltips for progress bars in the exploration statistics page.
* Add information in the exploration statistics page about the number of readers who left an exploration without submitting an answer.
* Add a new exploration ('Parametrized Adventure') showing how parameters can be used to retain the reader's state.
* Fix a routing bug that caused the state editor page to occasionally break when reloaded.
* Upgrade App Engine version from 1.7.4 to 1.7.7.
* In progress: Add dataset functionality, so that editors can easily upload many questions that have the same type but different parameters; Oppia would pick a random one to show the reader.
* In progress: Add exploration-level parameter initialization.
* Change the format of the exploration YAML files used to store the default explorations, to include exploration-level initial parameters.
* Add tests to cover all models except Statistics.
* Restructure the codebase slightly to ease the upcoming port of Oppia to the django-nonrel framework.
v1.0.3 (13 Apr 2013)
--------------------
* Allow the same interactive widget to persist through multiple rounds of reader answers so that the reader does not lose previous work. (The widget still disappears when the reader moves to a state that uses a different interactive widget.)
* Add markers for previous reader answers to the interactive map widget, as an example of the previous point.
* Add an admin handler that allows an admin to reload the default explorations.
* In the statistics dashboard, show detailed exploration statistics for every rule (not just the default one).
* Start a migration to typed objects with their own normalizers and view/edit templates. Remove the old normalizers.
* Bug fixes and general tidying up.
* Security fixes.
v1.0.2 (6 Apr 2013)
-------------------
* Add an interactive map widget, a classifier for 2D coordinates, and a simple exploration showcasing these.
* Show exploration statistics directly in the state editor, so that it is easy to view and act on readers' answers for individual states.
* Add an 'unresolved answers' list which keeps track of answers that need to be acted on.
* Add a warning to the editor UI when there are self-loops that do not give the reader any feedback.
* Add more unit tests for the Exploration model.
* Add the Python 2.7 backport of unittest.mock for testing.
* Various UI fixes.
v1.0.1 (29 Mar 2013)
--------------------
* Add hits-per-state data to the statistics page.
* Add responsive CSS support for viewing Oppia in mobile devices.
* Add a 'Give Feedback' handler. The feedback is stored in the datastore.
* Improve the display of the main page, the gallery page and the editor pages by tweaking the CSS.
* After an interaction with the reader on the exploration page, scroll down to show the new content.
* Remove the AugmentedUser class, replacing it instead with datastore queries.
* Update sample explorations
* Security fixes
v1.0 (22 Mar 2013)
------------------
* Initial release