Nohut Academy Learning Management System (LMS) was developed using Laravel PHP Framework, React JavaScript UI Library, Alpine JavaScript Framework, and Tailwind CSS Framework mainly. It is used by Nohut Academy and its related educational institutions (nohutakademi.com, nohutbilgi.com. linkkurs.com, ...) and its clients such as schools and university admission preparatory institutes.
Laravel Framework was used to implement and develop an administration panel and OAuth 2.0 based API. The API provides secure access to the server system by various types of client applications including a React app called "Penpan". Penpan provides an environment for taking exams and studying. The administration panel is used by various types of users with different access levels or roles and permissions that act or cooperate in a complex educational organization, including its branches and channels, their various personnel, teachers, students and their parents.
MySQL relational database system is used to store core data. MongoDB NoSQL database system is used to record historical data, which is the events of data changes in the system. Also, Redis NoSQL database system is used to create and process queues. Queues are used to record historical data and events, send notifications, and process large files, such as converting PDF files to images and storing them in the file delivery repository.
The user interface of the administration panel is developed using Tailwind CSS Framework and Alpine JavaScript Framework. In addition, Vite.js tools are used in the front-end development of the administration panel.
"Penpan" and other client applications are developed using the React JavaScript UI library, some of its popular components, as well as some other necessary and useful JavaScript modules or libraries. The Penpan app provides an environment for viewing book and exam pages, drawing digitally, zooming, padding, selecting question answers on these pages, taking exams, and viewing exam results and related statistics.
System status or technical information can be viewed and monitored using popular Laravel tools such as Telescope, Horizon, and Pulse.
This system has been designed and engineered to handle and manage complex learning processes involving various types of entities and their relationships. These entities include Gains, Contents, Live Lessons, Study Plans, Learning Media including Videos and PDFs, Exam Booklets, Question Booklets, External Exams, Homeworks, Learning Packages, University Programs etc.
Gains and Contents are the fundamental concepts in this learning management system. Contents can be thought of as learning areas which can be narrowed down and are of different types such as Subjects, Units, Lessons, Classes and Special Contents. Each content can be divided into some smaller contents that refer to more specific learning areas. The contents and their structure depend on the educational organization itself or a branch of it itself, and therefore may differ among educational organizations and among their branches. However, learning gains are standard learning areas and a base standard gain must be assigned to each content. With such an assignment, it is clear which learning gain that content contributes to.
The learning process is carried out by attending Live Lessons, studying learning media such as Videos and PDF documents, taking exams such as Exam Booklets, Question Booklets and External Exams, or doing various types of Homework. Furthermore, the learning process is conducted through study plans or programs specifically prepared for each student based on the results of their activities including their exam results.
Live Lessons are created by specifying the main content they are about and can then be scheduled on a calendar with various teachers and assistants presenting these live lessons at various dates and times. Teachers, assistants, and invited or subscribed students can then join the live lessons when the time comes. In live lesson calendars and scheduling, a scheduled session can often be assigned more specific content that explains the lesson topic in more detail. For ad hoc or one-time live lessons, teachers or staff can manually add students to the live lesson, but for recurring or scheduled live lessons, students are automatically added to the live lesson based on the packages they purchase, as the contents assigned to the packages can control students' access to live lessons or their certain sessions with assigned content.
Various types of learning media including PDF documents and Videos can be created in the system by specifying the main content they are about. Students can open and view such learning media on the LMS or the student application.
Exam Booklets are created in the system by specifying the main content they are about. Then, their pages are created by converting the exam booklet PDF files into a series of image exam pages. Then, exam page elements such as questions and topics are created by determining the various sections of these image pages, such as question and answer sections, with the pixel coordination of the upper left and lower right points. Meanwhile, the information of all question and topic sections of the exam booklet pages is converted into some item data, including their coordination, associated gains, lessons and difficulty level information, and stored in the database. Therefore, each exam booklet will have a series of pages, and each page will have several questions or topic items, the data of which is stored separately in the database. Authorized users can also add some video, PDF, or explanation content to different points on any page of the exam booklet, which can be displayed as clickable buttons at specified places on the page. A student can then view this content by clicking on the relevant buttons on the booklet pages. This content can be accessible or viewable before or after the exam. The exam booklet is displayed to Penpan App users, where they can answer the questions of the exam booklet and then get the result of their exams individually.
The relevant institution branch must be specified for each learning resource, but when a resource is created by a branch or any of its staff in the system, that branch is added by the system as the relevant branch of that resource. In addition, the relevant content for each learning resource is selected from the contents of the specified branch for that resource.
Packages can be created in the system by specifying the institution branch to which they belong. Packages can also have sub-packages. Contents of an institution branch can be assigned to the packages of that branch. Considering that contents can also be assigned to learning resources, such as live lesson sessions, learning media, and exam booklets, if a content is assigned to a package, all learning resources to which that content or one of its sub-contents is assigned are automatically added to that package. In other words, the items of a package are dynamically computed based on the contents assigned to that package. When a student purchases or is given this package, he/she can access all learning resources added to that package through the contents assigned to that package. Hence, Students can access learning resources according to the packages they purchase, as the contents assigned to the packages can control the access of students to the resources with assigned content. On the other hand, if a content that has been assigned to a learning resource, itself or one of its super-contents has been assigned to a package which has been bought by the student, then that student can access that resource. Teachers of a branch of an institution can be assigned to packages of that branch. In other words, packages can also have assigned teachers who support or contribute to that package or its subpackages.
For each package, a number of promotional videos can be created and managed in the system. These promotional videos can be added specifically for a lesson offered in that package or for the entire package in general. In addition, the website or the position where the promotional video will be placed must be specified. Also, students can write comments about the packages they have access to. These comments can be viewed and approved by authorized users of the learning management system and, if approved, are displayed in the relevant places on the website or the student panel.
Question Booklets are created by automatically or manually selecting various question items from various pages of one or more exam booklets. The selected question items are organized and displayed consistently by the PenPan App into a series of pages that PenPan users can answer when taking exams. For automatic generation of question booklets, some packages are selected by which the contents assigned to these packages and also the main gains associated with these contents are loaded. Then, some contents can be selected which will be used by the system to find all exam booklets associated with those contents. Then, some gains can be selected which can be used to randomly select some question items to which these gains or their sub-gains have been assigned, from the exam booklets found by the system. In addition, some difficulty levels can be determined to be used in selecting question items at this difficulty level from the exam booklets found by the system. Question items in the question booklets can be changed, or new question items can be added to them by selecting question items from the list of available exam booklets, their pages and question items.
The study duration parameters are defined as a set of difficulty level/duration pairs for each pair of lessons and study item types (questions, topics, ...), from which the time required to complete a booklet can be calculated, since each item of the booklet is assigned a lesson and a difficulty level and has a type.
Various types of homeworks can be created in the system, including study homeworks as PDF documents or videos, exam booklets or question booklets. These homeworks can then be given to individual students or to all students in a class. It is required to specify the relevant teacher for each homework, but when a homework is created by a teacher in the system, that teacher is added by the system as the relevant teacher of that homework.
External exams are exams that are held and conducted by distributing optical forms to students in a physical environment. Students will use their pencils during the exam to fill in the optical forms. These optical forms should then be automatically read, so that the answers can be extracted and the students' scores and results can be calculated and stored in the database. The Excel-based definition of external exams including their names, the lessons examined, the correct answers to their questions, and the examined learning gains associated with their questions, can be imported into the system. An optical form can then be selected from the available ones and assigned to the imported external exam. Supported or used optical forms are created and managed independently in the system. The pixel coordination of various sections of optical forms can be determined and these section elements can be created using the provided drag-and-drop user interface. If an optical form is assigned to an external exam, the pixel coordination of the different sections of that optical form can then be used for image processing of the uploaded scanned optical forms filled in by the student while taking the relevant external exam, so that the student answers can be extracted and the results of the external exam including the student score can be calculated and stored in the system. In addition, the optical forms filled out by students can be automatically read by some external machines and converted into standard DAT files. In DAT files, all personal information of each student and all answers given by that student to external exam questions are written on one line of the file. These DAT files can then be imported into the system so that students' answers, scores and results can be calculated and stored in the database. When creating or updating various sections of each optical form, there are also some fields to enter the DAT position of the relevant student information block in each line of the DAT file and the DAT length of this information block (for example, the student number or the answer block of a lesson, represented by the relevant optical section). When DAT files are imported into the system, the system reads the DAT files using the DAT-related information of each optical section. It is also required to specify the relevant institution of each external exam or optical form, but when an external exam or an optical form is created by an institution owner or any of its staff in the system, that institution is added by the system as the owner or institution of that external exam or optical form.
The start and end dates of sale and usage must be specified for each package. Additionally, each package can be assigned a study plan based on its usage start and end dates. Each study plan can be thought of as a set of lesson/subject pairs divided into several weeks. Given the usage start and end dates of a package, the number of weeks covered by the package can be calculated and then a study plan that organizes the lesson/subject pairs within this number of weeks can be assigned to this package. In other words, study plans are defined as the number of weeks, each containing a set of lesson/subject pairs. Therefore, the duration of a study plan is the number of weeks included in it. Each package should be assigned a study plan with a shorter duration than the usage period of that package, taking into account its usage start and end dates. Study plans can be created and managed independently in the system, but it is possible to automatically create and assign a suitable study plan for a package by copying an existing package, as this action can also create a new suitable study plan for the new package. In other words, it is possible to copy an existing package by specifying the usage start and end dates of the new package, through an automatic process that calculates the number of weeks for these start and end dates and if an existing study plan is assigned to the existing package, the system will automatically rearrange the lesson/subject pairs of that study plan using a special algorithm to create a new study plan according to the newly calculated number of weeks and assign this study plan to the new package.
The package study parameters are defined as a set of score/time pairs for each package and lesson pair, from which the time required to study the lessons offered in a package can be calculated, taking into account the scores obtained by the student in the various lessons. Therefore, based on the university education program data and the package study parameters and the available packages, complex study plans can be calculated for different students with different exam results.
Authorized users of the system can view and manage the packages purchased by students and their related invoices, for example; they can give new packages to students, and update or remove the packages given to them. In addition, authorized users can view students’ activities in full detail, including completed exam booklet, question booklet, homework or external exam results. Also, authorized users can view statistics on students' learning gain achievements resulting from their activities, such as their success rates on the various learning gains they are trying to achieve through their activities, and a list of all learning gains they are expected to achieve based on the contents assigned to the packages they have purchased or been given. These lists of learning gains can then be filtered according to various criteria, and special question booklets supporting the filtered learning gains can be automatically created that the relevant students can use to improve their study results.
The users of the system are organized into organizations such as educational institutions or schools, each of which includes an owner or a main administrator representing that organization, several branch managers representing and managing branches of that organization, managers representing various channels or broker dealers, various personnels, teachers and students of those branches, parents of those students, and system administrators who can manage all assets or entities belonging to those organizations and the system itself. Classes and departments of the organizations can also be created and managed in the system.
For each educational institution registered in the system, a number of agreements, each one containing text and PDF file, can be created and managed in the system, which the students of that institution can accept when purchasing or using packages of that educational institution.
Information on schools, universities, university education programs, high school lessons, and university program qualifications can be created and managed in the system. University program qualification data can be used for computations related to qualifications or study plans. For each university and education program pair, a set of lesson/point pairs can be added to the system and from these pairs, the student's entrance qualification to the relevant university program and the study plan to be followed by the relevant student can be computed. Each student's school can be found and specified from the school list in the system. Student school information can be used to quickly find a student among a large number of students with the same name in the system.
Data change events in the system, including creation, update, or deletion of entity data and their relationships, are automatically recorded in the system and stored in a MongoDB database. Such records show which users at what time created or deleted which entities or their relationships, or changed which part of the entity data in the system, and what the previous value of the entity data fields or their relationship data fields was. At the bottom of the entity edit pages or in the action column of each row of the entity listing pages, there is a history button that shows the history of changes made to an entity since it was created. Data change recording was integrated into the system through a central mechanism added to the relevant classes. This mechanism automatically records all data change events in objects instantiated from the relevant classes.
An unlimited number of roles and permissions can be defined in the system, and an unlimited number of roles can be assigned to each user. A special permission can be defined for each object type in the system and for any action to be performed on that object type (such as viewing, adding, updating, deleting). For example, "update exam" is a permission name for updating an exam booklet. Various roles can be created in the system, such as client, branch, report manager, etc., and various permissions can be assigned to them. Users are authorized to perform actions in the system according to the permissions granted to them through their roles.
There is a private media section where existing private files are displayed and various types of files like videos, images and PDFs can be uploaded to be stored in the private section of the server and this section can not be accessed directly via any URL path. Such private files can only be viewed or downloaded through authorization control after the user is authenticated with the given access token.
The "Penpan" application provides an environment for viewing booklet pages, drawing digitally, zooming in or out on these pages, padding, selecting question answers, taking exams, viewing exam results and related statistics, and viewing correct and incorrect answers on exam pages. In other words, the Penpan application provides a user interface for viewing and doing some actions on exam booklets and question booklets. Students can take the exam using the Penpan application, finish the exam, and then get and view the exam results immediately after finishing the exam. When opening a question booklet, its exam page fragments from various exam booklets are automatically arranged into a series of pages by the Penpan application through image-related coordination calculations, and the image fragments are embedded into the pages according to their sizes. There may also be some video, PDF, or explanation content viewing buttons that can be placed at different points on the booklet pages by authorized users of the learning management system. These contents can be accessed and viewed before or after the exam. The student can view these contents by clicking on the relevant buttons on the booklet pages.