Git Product home page Git Product logo

msadmin's Introduction

MSAdmin is the Django/Python Authoring environment for adminstering Mathspring and creating math content for it.

The project is best developed in the Intellij IDEA IDE and upon cloning should be very easy to set up.

Preliminaries:

  • Make sure you have a Python 3 SDK on your machine including pip. sudo apt-get install python3-pip

  • Install virtualenv

    sudo pip3 install virtualenv

  1. Clone the repo by doing something like:

    git clone https://github.com/marshall62/msadmin.git

    The msadmin directory it creates will the sources for MS Admin.

  2. install the python libmysql-client

    sudo apt-get install libmysqlclient-dev

  3. (optional) install django

    pip3 install -U Django

  4. In the directory that contains msadmin dir create a virtualenv

> virtualenv -p python3 dj2mysqlenv
> source myenv/bin/activate
(dj2mysqlenv) pip3 install mysqlclient
(dj2mysqlenv) pip3 install -U Django
(dj2mysqlenv) deactivate
  1. Intellij:
  • File | Settings | Plug-ins . Browse Jetbrains plug-ins and install Python and whatever it depends on.

  • Restart Idea

  • File | Project Structure | SDKs | +

  • Install a Python SDK System Interpreter from the location where Python lives (usr/bin/python3.5)

-Install the Python virtualenv created in step 4.

File | Project Structure | SDKs | +

  • Select Virtualenv environment / Existing environment
  • Navigate to dir/dj2mysqlenv/bin/python3.5
  • Now set the Project SDK to point to this virtualenv
  • File | Project Structure | Project | Project SDK
  1. Note that file msadminsite/settings.py is missing because it contains usernames and passwords that configure the system. Request a copy from me @marshall62.

  2. Run | Edit Configurations. Select Run Django-2 login page. It may pop up a dialog. Make sure it is using the correct python environment (Use the specified python interpreter within your virtualenv) It should then load the browser with the main page of the MSAdmin site.

You may need to do some django db work to create a superuser so that you can login to the MSAdmin tool and administer the database using django.

msadmin's People

Contributors

marshall62 avatar mohit-surana avatar nishankjain avatar ankitrgupta1 avatar

Watchers

James Cloos avatar  avatar  avatar  avatar Ajay Venkitaraman avatar

msadmin's Issues

Adding params to intervention selectors within an SC is difficult

When adding an IS to an SC it is very difficult to configure the IS to have params.

  1. We'd like it to get all the base IS-params by default and then copy them into the IS-param-sc then we could modify them here or turn them off.

  2. Some button saying to take all the defaults from the IS-param-base would be good.

Instead we have an empty inline table editor where there are 3 lines that include a pulldown menu that allows picking a base-is-param+value
and then typing in that name and value (or a new value) which is then put into the is-param-sc

Downloading all media associated with a problem

Tom (@perspegrity5) suggested that it would be convenient to have an option to download all the media associated with a problem, especially when the same media needs to be reused (e.g. creating a Spanish problem from an existing English one)

This would involve having a button on the UI, and a script that zips the relevant content and returns it.

Admin: StrategyComponent admin form fails to save on NEW

Create a new StrategyComponent. Add the 2 fields and select an intervention selector in the SCISMap
inline section. Try to save. It will fail.

Workaround. Save with no intervention selector selected. Then reopen and select the IS and save.

This is because an ID does not exist for the SC yet and the SCISMap needs it. It's an ordering problem #

Deleting hints from a problem should clean out the hint_XXX dir

The problem has a hint_XXX folder for each hints uploaded files. If you delete the hint,
this directory and its contents should be nuked.

Note: This would be an argument against allowing other problems or hints to refer to this hints media.
Deleting would require knowing that no one else is referencing the media in this hint.

Need Topic Intro builder

Need some controls for adding /editing topic intros as HTML. Should include some kind of HTML editor text area.

learning companion default needs to be in sc

Empathy based SCs need a learning companion class in order to have a level of empathy and a character.
The learning companion is only set in the sc_class. Seems like one should be set in the strategyComponent as a default which would be copied into the class. The problem with this is that it would also set Jane/Jake as the default.

Failures to create can make deletes fail

Example:
If a strategy row does not have a learning companion assigned and then we add this strategy to a class,
it will fail during creation. We are then left with a partial set of objects.
If we use the delete strategy from the class page, this will fail because of the incompleteness.

Solution: Rework the deletion routines so that they get rid of everything associated with a strategy even if its an incomplete structure.

Have the foreign keys on all class related tables behave so that deletes cascade so that all we have to do is delete the class_strategy and then all the other rows associated with it are deleted through the FKs.

Secondly, on creation, if there is a failure, we should rollback the partial structure.

QA: uploads need progress bar

file uploads can be slow in quickAuth problems and hints. They need a progress bar.

Hints especially problematic because save happens when dialog closes and there is no indication
of upload happening

Cloning a Problem

This would allow to create a problem with exactly the same specification, hints, images, etc. but with a new ID. This will help tremendously for the translation, where all that needs to change is the text and the sounds.

Even the snapshot could be copied over, as it might be the same, depending on the problem.

Mark ClassStrategyComponent with lastWriteTime

When any change is made to an item within a classes SCs mark the ClassSC with a last write time.

This way the cache inside the tutor can know what items need to be dumped and reloaded based on live edits.

Hint Order field is not maintained at authoring

Hello all,

I just discovered that many hints created in recent months have Order of "-1". There are 103 such hints in the system. There is no consistency RE which hint they are , e.g. Hint1, Hint5.... They are not "gives answer" hints in most cases. In some cases there are several of these hints in the same problem. Problem hint ordering may be problematic in recently created problems. e.g. 1677 -- I verified in MS that the order hints are given does not follow the Hint1, Hint2...sequence.

Note that hints have a Name, e.g. Hint 2 and an Order, e.g. 2. This is because in the past (and maybe in future) some hint names were descriptive, e.g. "remind about formula".

Some of these are Ready problems. I don't think I should turn them off if they are quasi-working. Ivon, should I?

FYI In looking at some I see that 1636 shows up blank in mathspring.org.

Strategy needs to be assigned to student on login

Students who login to a class that uses strategies should get assigned a strategy at login time. It should try to load-balance the available strategies used by the class across logins.

Currently I am hand-assigning students to a strategy with db manual edit

GradeFromStandard in Problem Table needs to be properly set

Hi all,

if you run the following query, you should see that these two columns match, but they don't. Many times, the gradeFromStandard is empty, and we rely on it for Neeraj's script that updates the problem difficulty. Can you please fix in the rose database (towards the past), and save the correct value when a problem is saved (towards future problem creation)?

select id, gradeFromStandard, left(standardID,1)
from problem
where status='ready'

Note that, when the grade is a letter, the gradeFromStandard should be 9.

Paris Check-all-that Apply problems in MSAdmin

This involves:

  • Saving the data from problem into database between a few tables (problem, problemanswers table,etc.)
  • Previewing/loading the problem from that saved data in the DB
  • Creating the interface features necessary to dynamically create these kinds of problems.
  • Assessing the correctness of the answer in MathSpring, after hitting the submit button.

A new topic should always have an introduction associated to it (intro)

I am running into bugs because some topics were created with no introductions (intro).
I am editing the database directly to re-use some of the old topic introductions.

First --how do I upload a new introduction into the system? It would be an html file, or alike.
Second --please make sure that it is not allowed to create a new topic without an introduction.

turning off interventions is not saved

after checking the boxes to turn off interventions this doesn't get saved when I return to the strategy.

Need a "save" button to commit these changes

Snapshots that are extremely big should be resized

Can also look at PNG to JPEG conversion.

This is an example of one that doecsn't generally fit in the screen:

1560 7GB5_4 Supplementary, complementary, vertical, and adjacent angles_4 0.75 7.G.5

Reduce to 75% of this size? That would the max height.

--Ivon

Setting difficulty levels by default

MSAdmin
Set starting values for all of these:
avgsecsprob = 60
avgincorrect = 1
avghints = 0.5
As soon as the standard is set:
Update the diff_level as = 0. + 0.05

Broken urls in Edit Hint Dialog

Refreshing the page and trying to open the Edit Hint dialog does not recreate the hint URL for the image thumbnail correctly

Eg. The link shows up as:
http://rose.cs.umass.edu/msadmin/qauth/prob/save/undefinedhint_7358/mvn-conditional.png

Instead of:
http://rose.cs.umass.edu/mathspring/mscontent/html5Probs/qa/problem_1589/hint_7358/mvn-conditional.png

This leads to a 404 in the msadmin tool.

A possibly related issue is that subsequent changes to image placement options are not propagated to the database. It is only reflected if you make the changes the first time you upload / reupload an image.

Examples not playing the "Gives Answer" hint?

I have seen a few problems that don't show the last hint, when played as examples at the beginning of a topic. Could you check if this is the case?

If they are flash, the "play next step" doesn't work, I might need to disable those from being playable as examples.

--Ivon

When add an IS to an SC it appears in the classSC as having all its params inactive

I added HighlightHintIS to the MiniGames SC. I then deleted class 1022's miniGame strategy and then added it. When I opened the miniGame SC, the HighlightHintIS is there but its params are all OFF.

THe is_param_base and maybe the is_param_sc should have an isActive setting to set whether the param is active by default and that value should then be used to initialize the is_param_class when it is created.

WARNINGS upon SAVING a problem

Display a warning when saving a problem, for all those fields that are still empty/unfilled.

Different for problems being saved as 'testabLE' VS. 'READY'.

After Problem search, problem selection is clumsy

After Problem searching you are supposed to select from the list of problems found in the search.
It is confusing and non-obvious what to click on to select the problem. Suggestion: include a table column that just says SELECT in each cell, which is the appropriate URL link.

Admin: SCISMap can't add IS Params here

If I create a new SC and give it an IS the easiest way to set up the default params for that IS (that would go into the is_param_sc table) is to use the scismap admin form.

But because the name of param comes from is_param_base I have to use a function to get this value. I used to have the name field in the is_param_sc table so that I could use the tabular inline to add params.

I need some way to select (pulldown?) a parameter name from the base IS params...

The current awkward workaround is to go to the InterventionSelectorParam admin form and create the variable/values there for each one I want in there. Once created, you can then see them in scismap form.

Incremental version of backup

To speed up the backing up of mscontent, provide an option of backing up only the files that have been changed beyond a point.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.