Friendarin is designed to make learning foreign languages as easy as possible. The users can learn English, Mandarin Chinese, and Russian. There are lessons, learning games, flashcards, quizzes and exercises for all different skill levels and have put together a large number of resources to ensure that the users can learn a language in a way that suits them.
The requirements for this project were quite specific. The main goal was to build a website that could be easily maintained. New content will be added frequently so we needed a strong content management system in place. We at KnackForge offer a unique combination of creative web design with application expertise for developing Drupal based websites. So we chose Drupal to speed up the development by leveraging the potential of contrib modules likes quiz, course, commerce, etc.
The goal of the project was to create a responsive website that allows the users to interactively learn foreign languages with ease.
Friendarin is multi-lingual site, so switching between Languages should be made easier. For making Friendarin a complete multi-lingual site, we utilized the i18n(Internationalization) module. The client wanted to change Strings whenever necessary, so we used the Stringoverrides module, which allows to replace the existing Strings without much complexity.
Log In and Register
One of the main goals is to get the users registered at Friendarin. So it is necessary to have the registration page quite simple. To make things much more easier for the user, we have the Log-in and Registration forms put together in a single page.
Courses and Quizzes
Friendarin is e-learning site with loads of study materials and exercises. We at KnackForge offer professional support for Quiz, so to add these exercises we made use of the Quiz module. The site required many different type of Quiz question types with specific requirement, so we made the required customization to the Quiz question types, so that users find it easy to take up the exercises.
One of the major requirements of the site is to add the study materials and exercises within a sub-lesson, and these sub-lessons are added to their corresponding Lesson. Then these Lessons grouped as Courses. For this purpose, we made use of the Course module. To implement this, we have nested the course(sub-lesson) inside course(lessons). It is also important to show the Courses and Lessons in an intuitive way, so we implemented this functionality using the Views module. While showing the courses and lessons using Views, the courses and lessons are filtered according to the Language. The user should be able to select the Language, so Languages are shown using Views exposed filter. By default, views exposed filters are shown as Select boxes, but that was not the requirement from client, as the Language options were to be shown as Language flag icons.
Subscription and Checkout
Friendarin is completely free at present. But the users can access only some sample lessons without any Subscription. To add Subscriptions to the site, we made use of the Commerce module. The users won’t be pleased to go through a tedious Checkout process, so we made the Checkout process to be simple with just a click of the Subscription button in the Pricing page.
In the main menu, the user has access to Notifications dropdown box. The notification box is used to show information about newly added courses and lessons. It also shows information about the subscription plans and their validity. We also have a notification badge at the top of the notification icon, which displays count of unseen notification. The notification dropdown box had been implemented using a custom block. When the subscription validity is about to expire, then there is a notification shown to the user regarding the validity. This functionality is implemented through the Rules module.
One of the important goal of Friendarin is to be Responsive. The users will visit the website using a variety of devices, so the website has to adapt itself to different resolution of these devices. We created a sub-theme of Bootstrap to meet the requirements of the website and make it responsive.
Here is the list of some important functionality requirement and their method of implementation:
- The website should be Multilingual, since it is Language learning website. The i18n(Internationalization) module was used to meet the requirement.
- The users should be able to easily register and login to Friendarin. Each user should have a Accounts page where the user can see their quiz scores shown as per the language, subscription status of the user, and resume button for resuming from where they left last time,and edit their preferences of the website. These requirements were implemented by theming the User profile page.
- A notification mail has to be sent to the user, when the user registers to Friendarin, and when the user subscribes to any plan in the website. For this purpose, we made use of the Rules and SMTP modules.
- In the homepage, we have a two criteria search form for searching Courses based on the user native language and target language. So we created a custom search form for making the process of searching for courses easy to the users.