Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Link to course services for teachers/TA's in their Jupyterhub user-home. #1060

Closed
sigurdurb opened this issue Jan 7, 2019 · 5 comments
Closed
Milestone

Comments

@sigurdurb
Copy link
Contributor

I notice some teachers/TA's want a link in their users home to their service where the nbgrader course is managed. Instead they have to remember and write their path /services/{course-id}

I want them to be able to see their course either as a menu-list in the toolbar or under the Assignments tab.

In #1040 multiple course PR we are working from the idea that every Jupyter group that is named nbgrader-{courseID} is for the students and groups named formgrade-{courseID} are for teachers and TA's. So the idea would be to query the Jupyterhub API and only list the link to the services if the user is in some group called formgrade-{courseID}.
Here is the api resource for how the services can be listed and the "prefix" could be fetched, it include the url path to the service.
https://jupyterhub.readthedocs.io/en/0.8.1/_static/rest-api/index.html#path--services

Any help would be appreciated.

@sigurdurb
Copy link
Contributor Author

I guess this would also need to call

Things to find out:

  • What methods to call from the frontend to display this for the teacher (Help needed)

@jhamrick
Copy link
Member

What methods to call from the frontend to display this for the teacher (Help needed)

I'm not completely sure what you're asking for help on, but here's how I would probably try to implemented it:

I think it would make sense to try to add a function to https://github.com/jupyter/nbgrader/blob/master/nbgrader/nbextensions/formgrader/main.js which is where the "Formgrader" tab gets added. In that function, you could access the JupyterHub api to get the relevant groups, and then return the URL to the formgrader service (or maybe multiple services if applicable). Then the code that creates the formgrader tab can use that URL (or multiple URLs) to create one or more tabs.

Does that help? Or were you asking about something else?

@sigurdurb
Copy link
Contributor Author

sigurdurb commented May 28, 2019

@jhamrick Basically from a user point of view the problem is that teachers go to the schools Jupyterhub url, log into their own account and then they wonder why there is not a link to the course service from their account and explaining that to some not so tech savvy teachers is kind of a hiccup scenario. I always send them the links in a nice html5 formatted email at the beginning of the semester but after that they either have to manually type the services url or go to the old email if they can't remember it since some teachers have TA's who do much of the work some teachers usually don't remember the service url. I think some teachers would get a more positive experice and use the web more if the path from the user home to their course was a more streamlined experience.
I was wondering if it would be possible to add a link from the assignment list tab maybe for starters. I could try that on my test server. But I have not worked much in the javascript front end before.

@jhamrick
Copy link
Member

I think some teachers would get a more positive experice and use the web more if the path from the user home to their course was a more streamlined experience.

Yes, I totally agree!

I was wondering if it would be possible to add a link from the assignment list tab maybe for starters.

Got it. Yes, given there's already a Formgrader tab that's added it should be straightforward to add multiple tabs, one per formgrader that's available. Or another way we could try to do it would be to create a new page corresponding to that tab and there provide a list of all formgraders that the instructor may access. I /think/ it should be doable just from Javascript though I haven't tried it. I can try to point you to some examples in the code during the hackathon to get started with if you want to work on this!

@jhamrick
Copy link
Member

jhamrick commented Jun 1, 2019

Closed by #1113

@jhamrick jhamrick closed this as completed Jun 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants