Using Open response assessments as a package in a django codebase

Hi, we are building an application which requires peer review feature and Open edX seems to have a good peer review feature. Is there any possibility to use edx’s open response assessment as a pip package into our codebase and use its API.

PS: We just want the apis/ backend functionality of edx-ora. We plan to build a frontend for it by ourselves.

Any guidance or support is appreciated. Thanks.

2 Likes

That’s a really interesting idea. I haven’t worked on that code base in a really long time. There are a handful of dependencies injected in the runtime_imports package that you might have to patch or make configurable. That being said, there aren’t that many dependencies, and most revolve around content definition or grabbing content info for aggregate reporting. Both edx-ora2 and the edx-submissions repos try to put their public interfaces in api packages or modules like:

I believe you’d be the first ones to try this, so I’m sure you’d run into some interesting code assumptions, but I think it is doable. It’d be great if someone who’s worked on it more recently could chime in though–maybe @jansenk?

Thank you. But as we were going through the source code there were some api functions that we could use although we were not sure what is the data format that we should pass to the api. It would be really helpful if there was a documentation which specifies what data format (the keys and nested dicts) that should be provided to the apis so that they do their job as intended. Any suggestion or guidance would help.Thanks.

The only documentation I’m aware of for that information are the docstrings, at least some of which expand on the keys, like:

If you point out a few places where this is missing, I might be able to help (again, it’s been a long time for me). You might also be able to figure it out based on the caller (which will usually be the XBlock code in this same repo). But I don’t think there’s any additional documentation for this anywhere.

Yeah we were able to figure it out through the Xblock code. Thank you for pointing this out.

1 Like