Estimating Costs for an Open edX Deployment on AWS

We’re often asked about hosting costs by our clients. We typically set up the Amazon AWS environment on the customer’s AWS account.

However there is no single answer about costs: they can vary depending on the number of users, security requirements and use of additional features like Open edX Insights.

Here’s a cost template to help you plan your Amazon AWS spend for your Open edX instance.

How we integrated Discourse with Open edX for a more Collaborative Learning Experience

What was the Challenge?

Our customers needed help in creating an efficient edX learning platform that prioritized peer-to-peer interaction and social learning, f

ocusing more on cross-course collaboration instead of course specific collaboration.

What we Researched

Online courses offer the opportunity to create a highly social learning environment and participating in group discussions have shown to help students to learn better through the concept of Community of Inquiry (CoI). This concept explains that the key indicators of a successful online learning environment are – Social Presence (ability of learners to project their personal characteristics through debates and discussions), Teaching Presence (having teachers to give directions and provide learning contents) and Cognitive Presence (ability for participants to construct meaning through knowledge exchange and collaboration).

What we Discovered

We observed that Open edX’s current default discussion feature provides a basic solution to facilitate interaction between students and it enables learners to experience Social Presence and Teaching Presence, however it needs a more engaging cross-course collaboration tool with a wider scope for students to learn better through improved Cognitive Presence.

Our Methodology

  1. We researched various third-party tools that integrated well with Open edX for richer discussions and these tools include Google Groups, Discourse, Django BB, Misago, Machina and Slack.
  2. We concluded that Discourse is the most suitable tool to encourage active cross-course discussions. If you want to know more about the metrics we used for course comparison, view our detailed analysis here.  

Our Technical Approach: How we integrated Discourse with Open edX

We carried out the following steps towards integrating Discourse with Open edX

  1. Deployed a separate instance of discourse
  2. Changed the theme in order to make it look more consistent with the rest of the Open edX platform
  3. Made it more amenable to an embedded user experience by changing the layout of the Discourse page. For eg. eliminating the Top Navigation
  4. Packaged this Discourse Customization as a Discourse Plugin:
    https://meta.discourse.org/t/using-the-pluginapi-in-site-customizations/41281
  5. Created groups on the platform based on themes given by our clients – planned leadership, regional and cross-functional group
  6. Pre-registered users using their emails on the Discourse platform. We plan to automate this in the future via Google Single Sign-on which auto-provision users through login
  7. Added users to their respective groups
  8. Used Google oAuth to enable single sign feature where users can use their Google account to login to their Open edX account.
  9. Integrated Discourse homepage under a special cross-course Discussion tab as an iFrame. Tip: To enable embedding of such nature, change the xFrame settings on the Discourse server
  10. Created a widget from Discourse’s ‘recent discussions’ feed and integrated it on the main Dashboard homepage. This allows users to see information about their discussion activity without having to specifically visit the Discussions tab
  11. Integrated Discourse notifications into the main Open edX top nav notifications, federated with the standard Open edX notifications

What were the results?

We were able to create an efficient collaborative tool that allowed learners to interact and discuss about what they learned from different courses. Cross-course communication has proved to be valuable in helping learners to learn more effectively and we managed to achieve our customer’s goal of creating a productive edX learning platform through Open edX – Discourse integration.

PERPETUAL LEARNING LAUNCHES ONLINE PROCTORING SOLUTION FOR OPEN EDX WITH PROCTORU

PRESS RELEASE

For Immediate Release
Ken Chen
Perpetual Learning
212-904-1497
[email protected]

PERPETUAL LEARNING LAUNCHES ONLINE PROCTORING SOLUTION FOR OPEN EDX WITH PROCTORU

Secure and Simple Remote Online Exam Proctoring Solution for Online Education
  
New York, NY (Aug. 22, 2016) – Perpetual Learning, an education innovation and technology company based in Manhattan, N.Y. announced today the launch of the world’s first open-source proctoring solution for Open edX. This proctoring solution, powered by ProctorU, has been open-sourced as a part of Perpetual Learning’s continued contribution to Open edX, one of the most popular open-source learning management systems for online education.
 
The proctoring service is provided by ProctorU, an industry-leading online proctoring platform. This proctoring solution is available as an Xblock, which is an extension of Open edX courseware components. This xBlock is already in use by Fun MOOC, Europe’s largest Open edX-based online education offering. It is available in English and French.
 
An ongoing issue with online learning in Massively Open Online Courses (MOOCs) like Open edX has been the validity of certification due to the lack of oversight and proctoring which are available in traditional learning environments. Certificates from online learning often symbolize the time spent within a course and results from unsupervised grading. The launch of this proctoring service for Open edX ensures academic integrity through secure and remote online proctoring, the time tested method for protecting exam content.
 
“With the large and accelerating adoption of Open edX for online learning, concerns about integrity have also been growing. This xBlock directly addresses this concern,” said Amish Gandhi, CEO of Perpetual Learning. “This is the first open-source proctoring solution for Open edX, now available to everyone”.
 
Matthew Jaeh, CTO of ProctorU is also pleased to support the Open edX community. “We have successfully monitored over 2 million exams since 2008, and this initiative opens up our service to institutions adopting cutting-edge learning management systems like Open edX,” Jaeh said.
 
To download and use this online proctoring solution, visit: https://github.com/perpetualny/proctoru-xblock
 
About Perpetual Learning 

Perpetual Learning is an education innovation and technology company based in Manhattan, New York, with a focus on platform development for online education. Perpetual Learning’s clients include Teach for India, Iowa State University and Families First among others. For more information, please visit: http://learning.perpetualny.com or email [email protected]     
 
About ProctorU
 
ProctorU watches students take exams online using webcams and screen-sharing technology. The service gives students the convenience of testing at home and instructors the ability to ensure exam security. ProctorU uses a three-step process that confirms that the student who registered for the exam is the student who is taking the exam and is following the institution’s testing requirements. Using webcams and screen-sharing technology, test monitors can see the student and what they are doing. ProctorU offers live, person-to-person, real-time monitoring to more than 900 colleges, universities and certification organizations. For more information, visit www.proctoru.com.

5 New Trends in Education

If you have arrived to this page, you’re probably here to gain an understanding about something or learn something. This is happening not just here, but every moment you’re awake. Be it listening to This American Life or looking at pictures of some really cute cats, your brain is constantly taking in new information and expanding its capabilities.

The way we take in new information has dramatically changed since the introduction of the Internet. The constant action of flipping through endless pages in the Encyclopedia Britannica has been simplified to a couple of taps on a keyboard to browse Wikipedia. Our access to knowledge has never been more effortless or free.

With a large percentage of what we learn belonging to the digital world, it has disrupted the traditional education landscape of in-person lectures and core curriculum. More and more digital learning trends have emerged, enabling more accessible, efficient and bespoke ways of learning.

1. Mobile Learning

The concept of mobile learning is pretty self explanatory–the act of learning through the use of mobile devices like phones or tablets. This happens in majority of the time we use our mobile phones, from browsing Buzzfeed or searching for information on Google. With this, it’s easy to say this form of learning is accessible virtually everywhere.

Buying a phone or a tablet costs significantly less than owning a laptop or enrolling in a formal higher education program. Over the years, the integration of mobile experiences with traditional education environments has improved. More and more classrooms have replaced textbooks with digital learning tools available on mobile phones and tablets to offer students a more accessible and interactive alternative for learning.

There are apps and platforms dedicated to a systematic means of learning via mobile, with organized lessons, learning paths and achievement systems. Apps like Duolingo, Udacity, and edX have done just this by offering mobile courses with specific learning goals. These help users learn whenever they want, wherever they are, just  with an internet connection and a battery.  

2. Personalized Learning

As another self-explanatory trend of digital learning, Personalized Learning is a solution that is specifically tailored to a student’s specific needs. The content, format, pacing, and path can all be designed to create a learning experience for that particular student. In this environment, learning is not about achieving certain goals, but more about the experience of learning. Unlike traditional curriculum-based learning environments where some students are likely to fall behind since not everyone has the same learning capacity, in Personalized Learning, every student is given a share of attention that creates a learning experience specific to them. It promotes significant interaction between teachers and students in both a physical and digital learning format.

Alt School, a San Francisco startup that aims to revolutionize the education system in primary to middle school environments via personalized learning has recently received $100M funding from Mark Zuckerberg. Also, the digital personalized learning platform Knewton has worked with numerous institutions to offer them personalized learning solutions for student and employee education.

It is also important to note while Personalized Learning aims to tailor the learning experience for every student, it is unfortunately not accessible to the masses. In addition to the substantial amount of research, content creation, and personal interaction between the teacher and the student needed to create a personalized learning experience, there’s also an enormous price tag attached to it with a minimum cost of $3,000 per month to attend Alt School in New York City.

3. Micro Learning

Micro learning offers users short and concise content in multimedia and interactive formats. It often includes text, video, games, and other interactive content to help the users learn in short periods of time. Due to its short duration and flexible formats, it can cover an immense range of topics from programming languages to human anatomy. It’s fast-paced nature matches the modern lifestyle perfectly, in which people’s attention spans have shortened to a mere few minutes.

This method can be found everywhere–to the point where experiencing it can go unnoticed. Took a lesson in Duolingo? Signed up for daily UX challenge? Subscribed to Crash Course on Youtube? Though these examples are in slightly different formats, they are all considered to be micro learning. Micro learning is able to cover diverse topics, but is not suitable for every topic. The fragmented style of learning is not suitable to convey new, abstract, and in-depth topics. For example, it is suitable to teach the learner new visual design tips and tricks daily, but it is not suitable to grasp the general theory of relativity.

4. Peer Learning

While the main source of learning has always been the teacher, learning from your peers is also an effective and underestimated way to learn. While both studying with your classmates and joining a discussion group can be considered peer learning, the digital rendition of this can easily create a positive and encouraging environment that promotes discussion. It also makes it easy to  put students with a similar level of understanding or learning style in the same group to ensure learning efficiency.

Peer learning has proven to be more effective than doing solo exercises. While teachers do provide the bulk of information during a class, there’s always new and undiscovered things you can learn from your classmates who usually provide a more approachable atmosphere. Unlike a lecture environment in which information is mass fed from instructors to students, interaction among students can promote a more active learning experience.

Furthermore, in a traditional peer learning environment such as a discussion group, it is difficult to ensure equal participation, a positive environment, and the same level of understand of certain topic among students even with an experienced moderator. Converting this to a software based environment allows the digital peer learning environment to be self-organized without the need for a moderator to initiate collaborative learning in real-time.

5. Virtual Reality Learning

While Virtual Reality’s claim to fame lies mainly in video games, there lies hidden potential for it in the education realm also. Taking education to VR has led to directing the way students learn to an entirely differently designed immersive experience. It’s certainly difficult to learn and empathize the experience of Syrian refugees through reading articles or watching videos, but viaa 360 video, users are able more accurately learn what the refugees have to go through in their daily lives to empathize their experience. VR experiences can help bring students to places thousands of miles away with a significantly lower price tag than having field trips. VR can even bring them to places that are impossible for anyone to visit but are in the curriculum such as Mars or the south in the Antebellum Era. Integrating VR with education can alter and increase student’s opinion on curriculum and can shatter education standards that have been the status quo since the 1700’s.

Google Expedition has  been developing 360 videos and experience to offer students an affordable way to experience VR learning. Through the device and application, students are able to be virtually underwater, swimming in the Great Barrier Reef in Australia to understand the ecosystem, or be on the top floor of The Burj Khalifa in Dubai to appreciate its literal architectural grandeur.

Recap

Education through the use of modern technology is able to achieve goals that are impossible in the traditional classroom environment. VR has the untapped potential that can take students to virtually anywhere in the world and beyond. One of the main new trends, Personalized Learning, can create lesson plans and goals tailored to individual needs and wants. Digital Peer Learning has the ability to easily moderate a positive and collaborative learning environment.

While there are certainly a lot of benefits to these learning methods, no single one is considered to be ideal. Personalized Learning, while tailored, requires a huge amount of research, content creation, and interaction between teachers and students. Mobile Learning is limited by x    x    screen size and battery life while Micro Learning is only suitable for certain topics.

Creating a well-rounded learning experience is only achievable on a handful of platforms and applications, since most of them have specific emphasis on learning methodology, but this is not the case for Open edX with it being designed to implement multiple learning methods on a single platform. Users can learn with their mobile devices through the Open edX app, gain knowledge from their peers through discussion groups and learn via micro-learning from the diverse formats of content supported by Open edX, and embed formats like VR leveraging its flexible customization options.

When attempting to construct a well-rounded learning experience, the most important decision is not about selecting the right learning method, but to structure the right combination of these complementary learning methods.

Adventures in User Experience and Design for an Open edX Site

Open edX is an open-source MOOC (Massive Open Online Course) platform.  This means that anyone can take the Open edX software and start offering open online courses available t

o everyone.

edX , the creators of Open edX, offer the main MOOC site edx.org which provides users opportunities to learn regardless of who and how old they are,  as long as they have access to a computer. Countless institutions and nonprofit organizations have been using edX to offer access to quality educational and interactive content to their users.

One big advantage of edX is the ability to allow learners to learn at their own pace. Unlike traditional lectures in which students follow the same curriculum schedule and project deadlines as others, edX offers flexibility to those who are less positioned for traditional education.

Moreover, edX is a brilliant way to share knowledge since in a traditional lecture environment, there are maximum capacities and limited seating and yet in an edX course, content can be shared among tens of thousands of students while at the same time adhering to quality standards.

As an open-source software, almost every component can be modified to tailor the product to different types of clients and use-cases. However, it is important to keep lean design and development methodology in mind and focus on creating a minimum viable product offering the most learner/user value as soon as possible.  Only then the user’s behavior, needs and wants can be understood to tailor the platform specifically for the them over time.

In this blog post, we will take an inside look at the process of user interface design ofan Open edX platform, specifically regarding the first cycle of the process: Creating the minimal viable product. This process can be divided down to three components— Research, Ideation, and Pre-implementation.

User Experience Research

Prior to starting the research process, it’s essential to measure the scope of the project. The understanding of the qualitative and quantitative goals, the context, the restraints, and the stakeholders is an essential activity that lays the foundation of a project and serves as the reference for future design and development decisions. Starting a project without this comprehension can be compared with an attempt to hitchhike through the galaxy without a towel.

With the end of this process, the Research portion then transitions towards understanding who your target audience is. Understanding your target user is one of the most important aspects of a project and one of the most important stakeholders. (Unless you are an infamous cable company of course).

The HBO show Silicon Valley exemplifies the fact that users can easily determine the fate of a project because in spite extraordinary talent and dedication devoted to the middle-out compression process, Pied Piper failed when they failed to understand their users.

It’s common to not have enough travel budget to visit and and interview target users, but this doesn’t mean there aren’t any opportunities to understand the user. One of the handiest tricks is creating user personas covering as many details as possible, just like the introduction of the movie Amelie,  which provides irrelevant yet interesting facts of the personas, making them more believable.

Guiding the personas through the 5 E’s of User Experience would be the next step. The 5 E’s (Entice, Enter, Engage, Exit, and Extend) enables designers to gain a better systematic understanding of how they would interact with the interface and overall how the experience would be like for them. Here are some questions to ask yourself in each section:

Entice
How would they hear about this learning offering??
What entices them to use this learning offering?
What’s their motive to use this learning offering?

Enter
How would they access the Open edX platform?
What’s the process of accessing the Open edX platform for them?
What should their first impression be about the Open edX platform?
What might drive them away upon first encounter with the Open edX platform?

Engage
How would they interact with the core functions of the Open edX platform?
What kind of pain points would possibly occur to them?
How many features would they actually be using?

Exit
How would they exit the Open edX platform?

Extend
What kind of take-away would they have even when they are not using the platform?
What’s the long term influence on them from the edX platform?

Through the process of creating user personas, a lot of questions, critiques, insights, and problems will pop-up as well as fresh ideas for features that would suite the target user.
While new ideas are always welcome, the main purpose of this first cycle is over-simplifying. Creating a minimum viable product is more ideal compared to one with too many confusing features and add-ons. And refer back to the project scope to make sure the decisions align with it.

The understanding of what information is important to the user, what would entice them to sign up, and what might confuse them can also be learnt from the user journey. From this exercise, the basic flow of information of the landing page can be determined.

Design

This next process starts off by translating all the essential information into a wireframe, which is the skeletal framework of a website page. Wireframes help designers in the way sketches help illustrators, gives them a rough idea of the appearance of the page and enables them to experiment with different styles of presentation and order.

To make this information relatable and easier for users to understand, integrating graphic content, pictures with tagline, and implementing a clear hierarchy of text style definitely helps.

At this stage, it’s important to still not get too stuck on tiny details like tweaking every kerning between letters, or writing the perfect copy, but to instead focus on the general flow and presentation style of the information. Also, it’s important to constantly check-in with developer during this process to see if the design is doable from the developer’s perspective. The design portion is just half of the website and receiving affirmation from the other half is equally important.

It’s worth noting here that with Open edX instances, we think that not having a prominent and meaningful splash page telling potential learners about the offering is a lost opportunity. It is also an opportunity to build the brand more and do something fun. So building on the default landing page with the main hero image, we like to expand more and talk more about the offering with clear messaging and call to actions, in a modern full-page layout.
Once the wireframe has been tweaked and edited to where you’re finally satisfied with the structure, this is where little details such as colors, fonts, button styles, and cards come into play. These are all used to solidify the theme and overall harmony of the page itself.

Colors
Often clients provide a style guide with primary and secondary color palettes of the brand in which case the color styling would mainly be a matter of establishing clear hierarchy with selected colors within the page to emphasize certain buttons of information. When the style guide isn’t provided or is considered to be too minimal, there are many online tools that can be utilized to assemble great color palette like Adobe Kuler, or Colllor.

Fonts
Often font families are specified in the style guide, but when they’re not, there are tons of free fonts provided on Google Fonts. Be wary of using paid fonts that might not be supported by all browsers and of course, never comic sans.

Buttons
There have been many successful iterations of a button design, but the real trick is knowing how to combine its high-priority stature (making people want to click on it) while at the same time harmonizing with the rest of the page’s elements.To achieve a consistent style of buttons throughout the platform, it is essential to check in with the developer to see if the style of the button can be implemented not just on this page, but sitewide.

Cards
​There’s no better way to create a responsive layout and a coherent display of information than using system of cards. In edX, cards are used to not only organize courses but can also be used to display perks of the platform or testimonials of the users. While there are lots of guides online to create the perfect card, the one from Google Material is highly recommended to use.

Pre-Implementation

Note: Before creating the style guide, don’t forget to receive approval from the developer involved to understand their preference to speed up the implementation process.

This process involves creating style guides for implementing the design onto the live page. There are many tools that can help designers create specification guides with pixel to pixel perfection, the plugin Measure for Sketch being one of them. You not only have the ability to turn a rectangle into a height guide using “lite height”, but also can obtain the property of an object without any significant hassle.   

It is important to note that the research and design process is never a linear process–there’s often tedious actions involved such as checking user personas to see if the style of information is suitable for the target users or checking the project scope to ensure the information is aligned with it.

Another problem that every designer and developer duo run into more than often is when the design is rendered unimplementable and needs to be altered; causing a storm of headaches and frustration. For this we recommend the designer and developer to be in close contact through the definition and build out process, and then standardize the solution for future implementations.

While it can be frustrating at times, the sweet satisfaction that you’ve successfully designed and implemented a Open edX site that fully satisfies your customer and their learners is always the most rewarding part.

Effective use of Video in your Open edX Courses

Our client Teach for India was featured at the Open edX conference at Stanford University in June 2016 as an example of effective video usage in an Open edX course.
 

The speaker uses an instructional video from Teach for India as an example of effective video content in courseware. The video itself was shot on-site in India, in the same environment where teacher training is carried out. The passionate teacher discussing her teaching method successfully conveys the message, assisted with synchronized captions as the speaker in the video is making their point.

Subtitles help comprehend the content with ambient noise in the environment. The conference speaker also mentions how the Youtube caption feature can be accessible to people who speak different languages in different parts of the world.

Interestingly, some of these techniques are stated to be as effective as possible with just plain video, before the conference speaker begins their segment on Virtual Reality content for education. 

You can register an account and see for yourself here.

The Power of Open edX: Assessments

We all know Open edX is powerful out-of-the box. Here’s a list of assessmentes it comes built-in with, ready?

● ​​Annotation Problem
● Calculator Tool
● Checkbox Problem
● Chemical Equation Problem
● Circuit Schematic Builder Problem
● Conditional Module
● Completion Tool
● Custom JavaScript Problem
● Drag and Drop Problem
● Dropdown Problem
● External Grader
● Full Screen Image Tool
● Gene Explorer Tool
● Google Calendar Tool
● Google Drive Files Tool
● Google Instant Hangout Tool Rich Diversity of Assessments
● Iframe Tool
● Image Mapped Input
● LTI Component
● Math Expression Input
● Molecule Editor Tool
● Molecule Viewer Tool
● Multiple Choice Problem
● Multiple Choice and Numerical Input Problem
● Numerical Input Problem
● Office Mix Tool
● Open Response Assessments
● Oppia Exploration Tool
● Peer Instruction Tool
● Periodic Table Tool
● Poll Tool
● Problem with Adaptive Hint
● Problem Written in LaTeX
● Protex Protein Builder Tool
● Qualtrics Survey Tool
● Randomized Content Blocks
● Recommender Tool
● Survey Tool
● Text Input Problem
● Word Cloud Tool
● Write-Your-Own-Grader Problem
● Zooming Image Tool
​● MathJax

Open edX 2016 Conference: Day 1 Run-down

Despite previous conferences being held in a New England autumn, edX decided to change things up with a decisive move to Stanford University in the sunny Bay Area. From June 14th to 17th, hundreds of innovators arrive in Palo Alto to discuss, innovate, and celebrate how far Open edX has progressed. Perpetual Learning was proud to be a Friend of Open edX conference sponsor, our second one running.
​Anant Agarwal kicked off the conference, covering topics like how credentialing is evolving on edX, from Course completion in the early days to the new trend of Micro Masters becoming the word of the day.

​​Anant also covered Academic Integrity tools, including virtual proctoring, a topic very close to Perpetual Learning as we’ve worked to enable proctoring on FunMOOC using ProctorU’s services.

​He also recited an anecdote of how an Indian student Akshay Kulkarni recognized him on his trip to India, and had come up to Anant and thanked him for edX,  which he attributed as the main catalyst towards eventually landing a job at Microsoft.

Picture

Photo of slide on stage, excuse clarity

Picture

Photo of slide on stage, excuse clarity

Following this, Jono Bacon, Director of Community at Github, keynoted on Building a Community Exoskeleton. He provided key insights and frameworks to help further develop and structure the Open edX community, very timely as the Open edX community is reaching a critical mass requiring some organized collaboration, which we are seeing with the adoption of tools like Slack. Jono rightly pointed out that achieving the underlying collaboration workflows is more critical than the tool used to solve this challenge.

Joel (Dev Manager), Mark (CTO) and Eddie (Chief Architect) from the edX team spoke about the state of Open edX and Development and Architecture priorities and initiatives. The sheer number of (known) Open edX sites out there is accelerating each month.

Picture

Photo of slide on stage, excuse clarity

Eddie presented a clean and structured multi-tiered representation of the Open edX architecture, which was developed in time for the conference thanks to ‘Conference Driven Development’ as Eddie noted.

Lunch in the courtyard of the Lathrop Library was another highlight of the day, with the sun hitting the spot after the morning session indoors. While the selection of the food was quite delectable, our personal favorite was the lemon tart not to mention the supply of fresh lemonade through the sunny day.

We got back to attending several interesting sessions in the latter half of the day. Regis Behmo from Funmooc demystified the Open edX source code in his session Open edX 101: A Source Code Review. Steven Burch from StanfordX spoke about dogfooding Open edX, with a few often over-looked and very pragmatic soft aspects of testing and building good software. The team from Applied Materials discussed the usability of Open edX in a corporate environment and highlighted the gaps and how they’ve been able to work through them. We enjoyed particularly the talk from TokyoTech, who showed one of the best applications of edX insights as we gained truly deep insights into learner engagement.

There were several more engaging talks and ‘birds of a feather’ sessions, a more detailed run-down of the schedule here.

We ended the day sipping summer wine under the canopy of (Dogwood?) trees exchanging ideas, planning, dreaming. And with this just being day one, we can’t wait to see what the rest of the event has in store.

Multi-Language Support on Open edX

One of the more challenging aspects of developing a site on a global scale is enabling it to manage multiple languages. For sites based on Open edX , integrating multilingual features is certainly no easy task. To make things easier however

, we’ve provided a clear step by step solution to this.

First off, there are two possible services available that can help make an Open edX site multilingual:

  1. Transifex
  2. Localizejs

Transifex: 
Officially supported by Open edX to localize  edX site,s Transifex is where all translation of the Open edX framework is currently hosted. Here’s a link to their site: www.transifex.com

Here’s how you can integrate this in your code:

Section 1: Developer Stack Configurations
Step 1: Switch to edXapp environment:

  1. sudo -H -u edxapp bash
  2. source /edx/app/edxapp/edxapp_env
  3. cd /edx/app/edxapp/edx-platform

Step 2: Configure your ~/.transifexrc file:

  1. [https://www.transifex.com]
    hostname = https://www.transifex.com
    username = user
    password = pass

    token =
  2. *Make sure the token is left blank*

Step 3:  Make sure all languages you wish to download are present and uncommented in

  • conf/locale/config.yaml.

Example: If you wish to download Arabic and Chinese (China), make sure your config.yaml file looks like this:

  • locales:
    • ar  # Arabic 
    • zh_CN  # Chinese (China)

Step 4: Configure LANGUAGE_CODE in your LMS (lms/envs/common.py). Or, for development purposes, create a dev file called dev_LANGCODE.py – eg dev_es.py – with the following:

  1. from .dev import *

    USE_I18N = True
    LANGUAGES = ( (‘es-419’, ‘Spanish’), )
    TIME_ZONE = ‘America/Guayaquil’
    LANGUAGE_CODE = ‘es-419’

Step 5: Configure EDXAPP_LANGUAGE_CODE in your configuration files. Here’s an example:

  1. https://github.com/edx/configuration/blob/master/playbooks/roles/edxapp/defaults/main.yml#L246

Step 6: Execute the following command in your edx-platform directory with your edx-platform virtualenv:

  1. $ paver i18n_robot_pull
    • This command will pull reviewed translations for all languages that are listed in conf/locale/config.yaml.
    1. To only pull down some languages, edit conf/locale/config.yaml appropriately.
    2. To pull unreviewed translations along with reviewed translations, edit edx/app/edxapp/venvs/edxapp/src/i18n-tools/i18n/transifex.py

Note: When you launch your LMS instance you can launch it normally and things should display properly. However, if in Step 4 you created a special “dev_LANGUAGECODE” file, you’ll need to launch the LMS with the environment file explicitly stated:

  • $ paver lms -s dev_es -p 8000

Note: If you experience issues along the way:

  • Be sure your browser is set to prefer the language set in LANGUAGE_CODE.
  • In common/djangoapps/student/views.py the user’s language code is trying to be obtained from a saved preferences file. Therefore, if you’re having issues seeing your language served up, it may be because your User object has a different language saved as a preference. Try creating a new user in your environment, this should clear up the issue.


Section 2: MultiLingual edX site

Setting the LANGUAGE_CODE enables one language as your installation’s default language. You’re probably asking: “What if you want to support more than one language? To “release” a second (or third, or hundredth) language here is a list of instructions to do so:

Step 1: First, you have to configure the languages in the admin panel.

Step 2: While the LANGUAGE_CODE variable is used to determine your server’s default language, in order to “release” additional languages, you have to turn them on in the dark lang config in the admin panel. Here’s an example link of where the dark lang config is located in the admin panel:
YourAwesomeDomain.com/admin/dark_lang/darklangconfig/
    

Step 3: After this, add the language codes for all additional languages you wish to “release” in a comma separated list. For example, to release French and Chinese (China), you’d add  fr, zh-cn to the dark lang config list.

Note: You don’t need to add the language code for your server’s default language, but it’s certainly not a problem if you do.

Note: Remember that language codes with underscores and capital letters need to be converted to using dashes and lower case letters on the edX platform. For example the language code of Chinese (Taiwan) is “zh_TW” on Transifex, but “zh-tw” on the edX system.

Confusing? I know. However, the benefits definitely outweigh the initial confusion. Benefits include that you can preview languages before you release them by adding: ?lang-code=xx to the end of any url, and ?clear-lang to undo this. Here’s an example:

  • 127.0.0.1:8000/dashboard?preview-lang=fr       #French
  • 127.0.0.1:8000/dashboard?clear-lang       #Sets the site back to default language

Section 3: Full stack Configurations
For a Local Full stack installation, follow Step One and Two from the Devstack deployment section and then follow these steps:

Option 1: If you only need to pull translations of one language, simply execute the following command in your edx-platform directory with your edx-platform virtualenv:

  •  $ tx pull -l <lang_code>
    • *The <lang_code> here should be replaced by the language code on Transifex of the language you want to pull (for example, zh_CN for Chinese (China)).

Note: This option will overwrite the .po files located in conf/locale/<lang_code>/LC_MESSAGES with the contents retrieved from Transifex, so please only do this step when Transifex is newly installed or when you really want a new version of translation from Transifex.

Option 2: If you already have your own changes of edX-platform’s source code in your local installation or the source files on Transifex is not up-to-date, you may need to extract strings manually. The following steps below will show you how:

Step 1: Execute the following command in your edx-platform directory with your edx-platform virtualenv:

  • $ paver i18n_extract    
    • This command will extract translatable strings into several .po files located in the conf/locale/en/LC_MESSAGES.

Step 2: After this extraction process, you can merge the newly extracted strings into the corresponding .po files located in conf/locale/<lang_code>/LC_MESSAGES (except django.po and djangojs.po, which are generated by i18n tools automatically from other .po files).

Step 3: Edit the .po file and then recompile them using: $ paver i18n_fastgenerate
Note: If you want to change the default language code of a Full Stack, you can modify the value of LANGUAGE_CODE inside lms.env.json and/or the cms.env.json located in /edx/app/edxapp before restarting your Full Stack.

Result: After completing these steps, you should see updated translations. If for some reason they don’t show up, try to restart the nginx server and/or clear your browser’s cache.

Localizejs:
Localize is a promising and insanely easy-to-use service that runs on your website by executing from a one-line JavaScript snippet. This one line of code will load Localize on your site and automatically change the language based on the language preference of visitors.

How it works:
By loading Localize code onto your website, it can:

  • Identify text on your website,
  • Replace text with translations, when available,
  • Adapt the text for pluralization and variables,
  • Order translations for unrecognized content,
  • Help you go global!

The Localize library translates the phrases on your pages and sends unrecognized phrases to the Localize dashboard for later translation. On the Localize dashboard, you can:

  • View content and translations
  • Add or remove languages
  • Translate content
  • Order translations (machine or human)

Steps for using localizejs:
Integrating localizejs is a very straightforward process:

Step 1: Create a project account on localizejs.com. As a result, a localized code snippet with project id is generated.

Step 2: Add this code snippet to the header file of the website.
   for eg:  1) main.html
               2) django_main.html

Results: After reloading the page, a toggle menu bar will appear on the page with languages ts hat you selected in your localizejs account. This enables users to select a language of his/her choice. And as soon as they do this, bingo, the language on all pages that have the snippet is changed based on the user’s choice.

Afterthoughts:
Following the successful installation of either of the two services, the sheer number of languages provided makes the whole process worth it. From Arabic to Swahili, both of these solutions provide an astounding 93 languages in total. When you’re trying to attract customers from around the world, comprehensibility plays a critical role in this. By integrating multiple languages on an edX site, not only is it a huge step towards fixing localization issues, but you’re developing a higher standard of consideration towards your visitors.

Reference: https://github.com/edx/edx-platform/wiki/Internationalization-and-localization

A Richer Discussion Experience in Open edX

For some institutions interested in using Open edX, student discussions may be an afterthought, while others find it quite important to use discussions for peer learning. The default discussion feature offered by Open edX brings a decent out-of-the-box solution for facilitating interaction between students. However, to get a more robust, cross-course discussion experience it may be worth considering a third-party app integration.

A client recently approached us with a need for creating an edX environment that was largely influenced by peer and social learning. Their requirements for social features included the following:

​Student

  1. Cross-Course Discusions: Ability for students to have one destination to access discussions for multiple courses. 
  2. User Groups: Ability for students to be a part of multiple assigned educational groups. 
  3. Private Discussions: Ability for students to create there own groups with classmates of their choosing. 
  4. Private Messaging: Ability for students to message other students/ instructors in the system privately. 
  5. Multi-Format File uploads: Ability for students to upload files to discussions in a variety of formats. 
  6. Student Directory: Ability for students to be able to access a directory of all students in the system/ see what groups they belong to. 
  7. Advanced Student Profiles: Ability for students to add video/ other multimedia to their profile page. 
  8. Restricted Login/ Signup: Ability to restrict signup/ login to users who have a specific email domain.   
  9. Widget Dashboard: Ability to use discussion data to drive a widget dashboard that would display content such as Top Groups, Discussions, Teacher Announcements, etc. 

Instructor

  1. Create and Assign Groups: Ability for an instructor to create groups and assign students to them.
  2. View/ Manage All Groups: Ability to see all groups and edit/ add/ delete members. 
  3. Moderate posts: Ability to manage posts based whether promoting positive posts or flagging/ deleted negative posts. 
  4. Rate Student posts: Ability for an instructor to rate a students post/ provide feedback on their post. 
  5. Private Messaging: Ability for an instructor to be able to message students. 
  6. Widget Dashboard Management: Ability for an instructor to manage widget dashboard/ post content to dashboard. 

Examining the required feature set revealed that the current default Open edX Discussions solution did not cover a lot of what the client was looking for. Using cohorts and groups along with some platform customizations could be a viable solution. However, our client required minimal to no platform customizations in order to make future upgrades as seamless as possible. This is pretty common as the further you deviate the platform from it’s original state, the harder it becomes to upgrade. This means that you’ll eventually be losing out on new free features that edX rolls out.   

It became apparent that a third party tool would best suit our clients needs.

There are many tools available that would integrate well with edx for richer discussions. The ones we evaluated included:

  1. Google Groups
  2. Discourse
  3. DjangoBB
  4. Misago (another Django Forum)
  5. Machina
  6. Slack

We did a feature analysis, posted below for your review.

Student Feature Default Open edX Google Groups Discourse DjangoBB Misago Machina Slack
Cross-Course Discussions No Yes Yes Yes Yes Yes Yes
User Groups Using Cohorts Yes Yes No Yes No Yes
Private Discussions No Yes Yes No Yes No Yes
Private Messaging No Through Gmail Yes w/ Plugin Yes Yes No Yes
Multi-Format File Uploads No Yes Yes Yes Yes No Yes
Student Directory No Not Cross Group Yes Yes Yes No No
Advanced Student Profiles No No Yes No No No No
Restricted Login/ Signup No Yes No No No No No
Widget Dashboard No Yes Yes No No No Ywa
Instructor Feature Default Open edX Google Groups Discourse DjangoBB Misago Machina Slack
Create and Assign Groups Yes Yes Yes No Yes No Yes
View/ Manage All Groups Yes Yes Yes Yes (No Groups) Yes Yes (No Groups) Yes
Moderate Posts Yes Yes Yes Yes Yes Yes Yes
Rate Student posts No No Yes No No Yes Yes
Private Messaging No Via Gmail Yes Yes Yes No Yes
Who would we go with?

While a Slack + Open edX integration sounded super exciting and something we want to pursue in the near future, after carefully considering all of these options, we decided to go with Discourse for a few different reasons:

  1. Feature richness: Discourse has many features that were required by our client. Just a few include Post Metrics, Groups, SSO, Multiple file attachment formats, and many more.
  2. Open source: Like Open edX, Discourse is completely open source which means it’s completely free and can be edited/adapted as needed. It’s built in Ruby on Rails, the same technology stack as the current Open edX discussions solution.
  3. Active Community: The open source community that revolves around discourse is extremely active with releases coming every couple of weeks and sometimes as often as every few days. See their github here: (https://github.com/discourse/discourse).
  4. API: Discourse comes with a comprehensive API which allows it to seamlessly integrate with Open edX. This was helpful in this particular case because it allowed for data to easily be picked up for the required dashboard.

Prototype

Click on the prototype below which imagines discussions heavily integrated into Open edX using Discourse, based on our clients’ needs.

Picture