OTAS Insights
Introduction
Insights are a brief of the system statistics in a more organized way, it uses the charts and widgets to give a quick view about what's going on with the academic year or all years. all the insights shares the same UI
and the backend code technically except Agents Insights which it built differently from others, we has it's own part in this page.
All Insights
lives within a custom plugin in with the name Otas.Insights
which in plugins/otas/insights
.
Let's start with the UI of each Insights (Except Agents Insights) it consist of Filters, Widgets counts the (total, paid, completed) apps, Bar Chart, and Table.
Technical Overview
Each Insight has it's own class but they all extends a parent abstract class with the name InsightQuery
and it has the common logic across various types, of calculating apps and students and countries, the prototype of the class is:
abstract class InsightQuery{ /** * passed to it an array of key => value pairs of the filters form */ public function __construct($filters = []) { //... } /** * An abstract class for calculating total apps, implemented uniquely by each Insight's class */ protected abstract function total(); /** * A method to filter the records using $this->filters array */ public function filter($query) { //... } /** * A method to filter by creator type (employee, agent, or direct) * Or specific user */ public function filterByCreator($query) { //... } /** * Calculates the totals (all, paid, completed) for the widget below the filters in the UI part */ public function totals() { //... } /** * * A method to filter by university country * pass the countries you need to filter with */ public function filterWithCountry($builder, $countries) { //... }}
Agents Insights Into
Agents Insights is the only type of insights that different from the current. It gives a total picture of of all agents stats using charts only (Line
, Bar
, and Pie
). It also has a filter to select specific agent and view only their stats. It has an abstract class with the name BaseQueries
contains the common logic, then separated three classes for each status of the apps (all, paid, completed). the BaseQueries
class prototype is:
abstract class BaseQueries{ /** * Gets the first application created date to adjust the filters in the UI * especially in the All in from & to date */ public function oldestApplicationDate() { //.. } /** * Each method here represents a chart in the Agents insights * They normally (10) charts, but in case of specific agent selected * the timeline chart disappears */ public function timeline() { /* ... */ } public function schools() { /* ... */ } public function programs() { /* ... */ } public function users() { /* ... */ } public function nationalities() { /* ... */ } public function degrees() { /* ... */ } public function genders() { /* ... */ } public function languages() { /* ... */ } public function faculties() { /* ... */ } public function specialities() { /* ... */ } /** * Calculates the totals (all, paid, completed) for the widget below the filters in the UI part */ public function totals() { //... } /** * Filters the apps based on the filters form * Implemented individually for each status class */ abstract function filter($query); /** * Adjust timeline query and build it based on the time interval * Implemented individually for each status class */ abstract function constructQueryBasedOnTimeDurations($query); /** * Filters with university country */ public function filterWithCountry($builder,$countries) { //... }}
Shared Views
There are some shared partials with the insights, you'll find located at plugins/otas/insights/components/partials
. the common partials are:
* `filters.htm` holds the filters form on every insights which it the same between all.* `cards.htm` holds the widgets cards below every filters in the UI.* `sharedScripts.htm` holds the scripts used like `chart.js ` lib and some other js libraries and functions.
Filter Criteria
Insights are refined using filters such as:
- Creator Type: Categories include All, Employees, Agents, Direct (for company site creations), and Specific User (with an option to select a particular user).
- Based On: Differentiates between all applications, those that are paid, and those that are completed.
- Academic Year: Filters applications by academic year.
- University Country: The country of the university associated with the application.
- Date Range: Specifies the period during which applications were created.
- View Top: Limits the display to top items within a category.
Insights Type
The OTAS System's insights module offers diverse analytical perspectives, tailored through a variety of factors to enrich understanding and decision-making processes.
Programs Insights Agents Insights Nationalities Insights Degrees Insights Genders Insights Languages Insights Specialities Insights Fields Insights Forms Insights Affiliate Insights
Programs Insights
This section offers analysis on program-related applications based on selected filters. Insights are visually represented through charts (showing top programs as per the "View Top" filter) and detailed in tables that list all programs with corresponding application numbers, enhanced with pagination.
Agents Insights
Agents Insights reveal patterns in applications submitted by agents or their sub-agents, broken down into categories like application counts by academic year, agent, university, program, student nationality, faculties, specialties, degrees, student genders, and program languages. This multi-dimensional view facilitates a deep dive into agent performance and trends.
Nationalities Insights
Similar to Programs Insights, Nationalities Insights provides reports based on the nationalities of students applying for applications that meet the selected filter criteria. It showcases the distribution and trends of applications across different nationalities, offering valuable insights into geographic diversity and preferences within the application pool.
Degrees Insights
Mirroring the structure of Programs Insights, Degrees Insights presents reports centered around the degrees—such as Bachelor, Master, Associate, Doctorate—of the programs applied for within the filter criteria. This analysis highlights application trends and preferences across different levels of academic pursuit, providing a clear view of applicant interest by degree type.
Genders Insights
Following the format of Programs Insights, Genders Insights displays reports according to the genders of students applying for applications that align with the established filter criteria. This segment offers insights into the gender distribution among applicants, enriching understanding of application dynamics across different gender groups.
Languages Insights
Adopting the Programs Insights framework, Languages Insights generates reports based on the languages of programs—such as English, Turkish, or a mix (e.g., 70% Turkish, 30% English)—for which the applications meet the selected filter criteria. This analysis sheds light on language preferences among applicants, showcasing trends and demands for language-specific programs.
Specialities Insights
In line with Degrees Insights, Specialities Insights offers reports focusing on the specialties of programs applied for, as per the filter criteria. This analysis details applicant interest in various program specialties, providing a nuanced view of application trends related to specific fields of study.
Fields Insights
Similar to Specialities Insights, Fields Insights provides analysis based on the fields of programs that applications correspond to, according to the selected filter criteria. This feature enables a deep dive into the variety of program fields preferred by applicants, highlighting trends and interests in specific areas of study or professional development.
Forms Insights
Forms Insights offers analysis on the effectiveness and usage of different application forms available on the company website. These forms, each assigned varying weights, are selected and displayed to prospective students through the OTAS plugin based on their assigned weights, introducing a random yet weighted choice mechanism. Each form is designed to collect a different set of data from students. This insight focuses on identifying the top-performing forms that facilitate student applications most effectively, highlighting preferences and trends in form utilization that assist students in their application process.
Affiliate Insights
Affiliate Insights provides comprehensive details about affiliates and their performance. Following the structure common to Insights pages, this analysis includes:
-
Cards Section: Displays the total number of applications created using affiliate codes and the total number of completed applications associated with these codes.
-
Chart Section: Showcases a chart of the top 10 affiliate users, represented by bars indicating the total count of applications they are associated with.
-
Table Section: Presents a detailed table listing affiliate users along with several key metrics:
- Total Apps: The total number of applications linked to each affiliate's code.
- Completed Apps: The number of those applications that have been completed.
- Total Share %: The share of total applications linked to a user's affiliate code as a percentage of all applications created with any affiliate code.
- Completed Share %: The share of completed applications linked to a user's affiliate code as a percentage of all completed applications that used an affiliate code.
This insight aims to highlight the effectiveness and contribution of affiliate marketing efforts in driving applications, offering a clear view of how affiliate codes impact overall and completed application volumes.