Before I spend time trying to get Enterprise to work I just want to know, can Open Edx Enterprise run with Tutor?
I am happy with a ‘yes’ or ‘no’ answer but any additional guidance not listed in the enterprise docs would be appreciated. Particularly if it needs to be enabled in config files, what is the enabler variable etc.
I currently don’t have eCommerce enabled as this project is for a not for profit, but we have multiple different organization’s that would value being able to enroll and report their own learners. So if an alternative can be advised, that would also be appreciated.
Hi @dancasey! I am not familiar with Open edX Enterprise. Can you please give me some pointers?
This means that Enterprise will not work out of the box with Tutor. However, it doesn’t mean that it will not work with Tutor: any Open edX component can work with Tutor, provided you create the right plugin. If you need support for creating such a plugin, please don’t hesitate to get in touch.
Perfect @regis thanks, I will try and get it set up but with the understanding that I might need to develop a plugin and so shouldn’t promise it as deliverable by next week
From the enterprise documentation. It would seem that it is shipped as part of edx-platform, and only requires configuring from Admin.
However, this blog post from opencraft from April 2020 (only checked the date now), states that “making use of all functionality provided by the Open edX Enterprise Service requires a working setup of ecommerce and course-discovery”.
I will set some time aside for trying to integrate in enterprise in the coming weeks, and will report back with any issues and hopefully any solutions
@dancasey did enterprise work with tutor?? I have done all required backend configuration (catalogue + tutor e-commerce is running) but unable to access the site >
I was trying to map :: new_org.localhost (*in local environment) to test this but it didn’t work. Please let me know your thoughts.
Thanks, we are still trying to understand this. @dancasey
however, in the local environment added “new_org.localhost” in nginx.conf to allow request and we were able to see catalogue. your thoughts and workflow would be helpful.
Where did you add “new_org.localhost”? I don’t see nginx.conf, but can see env/apps/nginx/extra.conf
Where are you now seeing the catalogue?
I am struggling with getting my LMS (localhost) to communicate with the discover app.
Could you advice if we have configured in similar ways or if there are anythings I’ve missed?
I am running tutor V3.12.5, which is running inside a venv.
Steps taken:
Enabled discover and ecommerce
$ tutor plugins enable discovery ecommerce
$ tutor local quickstart
Created super users for both discover and ecommerce
$ tutor local run ecommerce ./manage.py createsuperuser
$ tutor local run discovery ./manage.py createsuperuser
Set COURSE_CATALOG_API_URL = "http://discovery:8000" as suggested [here] (Lms <-> discovery communication). First tried this by setting in cms.env.json and lms.env.json, but then
Ran
$ tutor config printvalue COURSE_CATALOG_API_URL
and got http://discovery.localhost.
Ran
$ tutor config save --set COURSE_CATALOG_API_URL=“http://discovery:8000”
$ tutor config printvalue COURSE_CATALOG_API_URL
and got http://discovery:8000
Where did you add “new_org.localhost”? I don’t see nginx.conf, but can see env/apps/nginx/extra.conf
Where are you now seeing the catalogue?
tutor/env/apps/nginx/lms.conf
added
server {
listen 80; server_name localhost preview.localhost new_org.localhost ;
Rest other config looks ok for me… also
can you set COURSE_CATALOG_API_URL as http://discovery.localhost. , it should work make sure *new_org.localhost is allowed host of your LMS conf (JSON / prodcution.py) :: just for testing
@venkat.330
Are you able to select a catalog when adding a new enterprise customer?
What enterprise documentation are you using? (The documentation found via github, seems pretty out of date)
Thanks @venkat.330, I have yet to dive into the world of elasticsearch and kibana, and beginning to think I might be biting off more than I can chew tackling this.
I will do a bit more research using the links you provided and decide whether our project really needs the added complexity of Enterprise (since Tutor has been be pretty simple so far). All I really want to achieve is separate reporting for a number of different groups, by a group reporter that is not STAFF. Maybe a hack of Figures, but that would be another learning curve for another forum thread
The following is only an FYI and as I said I should probably do more research.
Running
$ tutor local run discovery ./manage.py refresh_course_metadata --partner_code=openedx
Returns error
requests.exceptions.ConnectionError: HTTPConnectionPool(host=‘www.myopenedx.com’, port=80): Max retries exceeded with url: /oauth2/access_token (Caused by NewConnectionError(‘<requests.packages.urllib3.connection.HTTPConnection object at 0x7fd8896c4860>: Failed to establish a new connection: [Errno -2] Name or service not known’,))
Error: Command failed with status 1: docker-compose -f /home/dan/ClimateIreland/CIL/tutor/env/local/docker-compose.yml --project-name tutor_local run --rm discovery ./manage.py refresh_course_metadata --partner_code=openedx
But when I run a blank query from http://discovery.localhost/, it successfully returns the single course on my platform…so just presumed the courses were indexed and searchable.
Even I am exploring what can be done with entriprise. It looks to be to attractive and think will be an effective feature to use in edx considering we should know to use catalogue & course_runs properly.
This conversation was a great read for me, and thank you a lot for sharing your findings with Enterprise and Course Discovery!
All I really want to achieve is separate reporting for a number of different groups, by a group reporter that is not STAFF.
This is exactly what I also would like to do! (and I’m hoping to be able to use the “catalog” and “program” features of course discovery as well)
@dancasey and @venkat.330 I was wondering if either of you got it all to work in the end. If so, I would be very happy if you could share the last missing pieces of the puzzle here. Thanks in advance!
This convo helped alot setting up tutor with enterprise.I was able to set enterprise-catalog, enterprise, discovery, ecommerse similar to that in devstack but now i am unable to fetch /enterprise/login and all other enterprise related urls.So if this topic is active any help would be really appreciated.
Hi Maarten. I did not pursue this via the Course Discovery or Enterprise. I didn’t really have the time to dig into the code or try to integrate my own plugin so I just run reports in a jupyter notebook. Though this is not ideal it might help others with smaller systems because it is working fine for me.
Our platform only runs a single course so it is a little more straightforward, but each course run has learners from about 40 different organizations that need to be reported separately. The course is 3hrs long, course runs are 6 weeks, about 2000 learners are enrolled per course run. So 3 course runs in and 6000 completed and this process seems to work away fine.
Once a week;
Manually download the Grade Report and CSV of learners who can enroll
Run jupyter script that
a. Combines the two downloaded CSVs and assigns each learner a status (Not registered, Registered/in progress, Complete)
b. References a local json file to create separate csv reports for each organization based on email domain or other email pattern.
c. Develops overall report with a Plolty chart to show overall progress / completion rate of each organization
The files are then uploaded to individual folders on a shared drive to be accessed by the relevant training officers.
This might seem a bit messy but allowed for very specific reporting, and takes no more than 10min a week. It would be nice to just have the reports emailed to the relevant organizations but conscious of GDPR (maybe overly so), we did not want to be sending emails that contained the contact details of employees.