tl-its-umich-edu / canvas-course-manager-next

Canvas Course Manager Next: A redesign of the existing CCM application. It extends Canvas features, makes cumbersome features easier to use, and adds new features.
9 stars 10 forks source link

Integrate with Django Ecosystem #465

Open pushyamig opened 3 weeks ago

pushyamig commented 3 weeks ago

This issue will be primarily removal of Node backend and add Django support

  1. Remove Node stuff
  2. Adding Docker to support Python build
  3. Using a Backend server - like Guincorn
  4. support Typing. Django has support from this https://github.com/typeddjango/django-stubs
pushyamig commented 3 weeks ago

@jonespm , give any input anything in specific. I am thinking of using Guincorn, but I am open to using uvicorn

jonespm commented 3 weeks ago

With Uvicorn, it's still recommended to run it through Gunicorn in production, this is what we do with Office hours.

However I believe the only reason we'd really need uvicorn is if we're going to be using websockets. This would be if we wanted more dynamic features. I don't think anything in CCM has this yet and I can't think of any planned feature that would need it, so I don't think it's necessary.

jonespm commented 3 weeks ago

If I was working on this I'd probably do it the same way we did with Canvas App Explorer. It managed the front and backends with supervisor in development and compiled all the frontend sources to run in production. I think we could re-use much of the same project structure and just drop in the client (frontend) code.

pushyamig commented 3 weeks ago

OK, I will stick with gunicorn and will implement supervisor as suggested