Matler

Wprowadzenie do systemu

Użytkownicy systemu

  • Administrator
  • Wykładowca
  • Student

Struktura

danych

Struktura danych

  • SUBJECT (np. "Matematyka")
    • DOMAIN (np. "Granice funkcji")
      • SUBDOMAIN (np. "Obliczanie granicy funkcji")
        • GROUP (np. "Granica funkcji w punkcie
          • LESSON (np. "Granica funkcji w punkcie - wykład")
          • EXERCISE (np. "Zadanie 2")

Struktura preambuły

<html>
<head>
	<matler>
		<id>MATEMATYKA</id>
		<type>SUBJECT</type>
		<parent />
		<title>Matematyka</title>
		<description>
			Matematyka - nauka dostarczająca narzędzi do otrzymywania 
ścisłych wniosków z przyjętych założeń
		</description>
		<order>1</order>
		<icon src="subject.png" />
		<lang>PL</lang>
		<tags>matematyka</tags>
		<youtube></youtube>
		<url>matematyka</url>
	</matler>
</head>
<body>

Struktura preambuły

<html>
<head>
	<matler>
		<id>MATEMATYKA_GRANCIE</id>
		<type>DOMAIN</type>
		<parent>MATEMATYKA</parent>
		<title>Granice funkcji i ciągi liczbowe</title>
		<description>Czyli o tym jak ważny jest porządek</description>
		<order>7</order>
		<icon src="group.png" />
		<lang>EN</lang>
		<tags></tags>
		<youtube></youtube>
		<url>matematyka/granice</url>
	</matler>
</head>
<body>
Podobno wszystko ma swoje granice - funkcje również! Czy na pewno? Czy każda 
funkcja ma granicę? A czy funkcja może mieć tylko jedną granicę? Mamy nadzieję, 
że po zapoznaniu się z tym działem nie będziesz mieć problemów z odpowiedzią na 
takie pytania. Co więcej - będziesz w stanie wyznaczyć owe granice.
</body>
</html>

Struktura preambuły

<html>
<head>
	<matler>
		<id>MATEMATYKA_GRANCIE_DEFINICJA</id>
		<type>SUBDOMAIN</type>
		<parent>MATEMATYKA_GRANCIE</parent>
		<title>Definicja oraz podstawowe własności ciągu</title>
		<description></description>
		<order>1</order>
		<icon src="group.png" />
		<lang>EN</lang>
		<tags></tags>
		<youtube></youtube>
		<url>matematyka/granice/definicja</url>
	</matler>
</head>
<body>

Struktura preambuły

<html>
<head>
	<matler>
		<id>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC</id>
		<type>GROUP</type>
		<parent>MATEMATYKA_GRANCIE_DEFINICJA</parent>
		<title>Monotoniczność ciągu</title>
		<description></description>
		<order>3</order>
		<icon src="group.png" />
		<lang>EN</lang>
		<tags></tags>
		<youtube></youtube>
		<url>matematyka/granice/monotonicznosc</url>
	</matler>
</head>
<body>

Struktura preambuły

<!DOCTYPE html>
<html data-require="math math-format expressions">
<head>
	<matler>
		<id>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC_Z4</id>
		<type>EXERCISE</type>
		<parent>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC</parent>
		<title>Zadanie 4</title>
		<description></description>
		<order>4</order>
		<icon src="exercise.png" />
		<lang>EN</lang>
		<tags></tags>
		<youtube>3ExZXCKk1CQ</youtube>
		<url>matematyka/granice/monotonicznosc/z4</url>
	</matler>  
</head>

Struktura preambuły

<!DOCTYPE html>
<html>
   <head>
		<matler>
			<id>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC_F1</id>
			<type>LESSON</type>
			<parent>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC</parent>
			<title>Monotoniczność ciągu</title>
			<description></description>
			<order>0</order>
			<icon src="lesson.png" />
			<lang>EN</lang>
			<tags></tags>
		 <youtube></youtube>
			<url>matematyka/granice/monotonicznosc/f1</url>
		</matler>    
     </head>
   <body>

Proces aktualizacji 

struktury danych

Ze względu na łatwość i dowolność edycji struktura danych zdefiniowana została w plikach xHTML w folderze "webroot/structures". Jednak dla zapewnienia niezawodności systemu dane te są przechowywane również w bazie danych. Niniejszy dokument opisuje proces aktualizacji pomiędzy danymi zawartymi w plikach xHTML a bazą danych (MySQL).

Synchronizacja bazy danych na podstawie plików XML

Opis:
Krok polega na aktualizacji listy plików znajdującej się w bazie danych (tabela: structure_files) na podstawie istniejących plików na dysku twardym


Uwagi:
Plik, który nie został zmodyfikowany od ostatniej aktualizacji zostanie pominięty w odpowiednich krokach aktualizacji. Jeżeli wykonano już wcześniej sprawdzenie semantyki pliku, nie zostanie ona przeprowadzona po raz kolejny - nastąpi to dopiero w momencie zmiany zawartości wspomnianego pliku. Dzięki takiemu podejściu proces aktualizacji wykonuje się szybciej, ponieważ pomija wcześniej sprawdzone pliki.

Walidacja składni plików XML

Opis:
Sprawdzanie wszystkich plików, które fizycznie istnieją na dysku ("exit" = "TRUE") oraz wcześniej nie zostały jeszcze sprawdzone - flaga "valid_semantic" = "NULL" pod względem prawidłowej składni.

Plik, który został zmodyfikowany oznaczony jest jako plik wymagający sprawdzenia składni.

 

Uwagi:
Jeżeli któryś z kroków walidacji dla pliku się nie powiedzie to ustawiana jest flaga "valid_semantic" = "FALSE".

Kopiowanie zawartości plików XML do tymczasowej tabeli w bazie danych - "structure_tmp_parsed"

Opis:
Krok ten odpowiedzialny jest za przeniesienie wszystkich informacji znajdujących się w pliku XML tymczasowej tabeli w bazie danych. Ma charakter optymalizacyjny. Związane jest to także z wygodą operowania na informacjach w bazie danych - zawężanie wyników, limitowanie, sortowanie.

Przeniesione zostają wszystkie pliki, które fizycznie istnieją na dysku oraz nie zostały wcześniej skopiowane do bazy danych - czyli posiadają flagę "parsed" = "NULL".

 

Uwagi:
Zmieniony plik oraz nowy plik zostaje oznaczony jaki plik, którego zawartość należy uaktualnić w bazie danych. Pliki którym nie została zmieniona zawartość, zostają pominięte.

Wykrywanie duplikatów względem pola ID oraz URL

Opis:
Krok ten odpowiedzialny jest za walidowanie czy nie istnieją duplikaty w systemie.

Sprawdzenie zależności

Opis:
Krok ten odpowiedzialny jest za walidowanie czy istnieje każdy rodzic elementu oraz czy całość ma strukturę drzewiastą

Sprawdzenie plików zewnętrznych

Opis:
Krok ten odpowiedzialny jest za walidowanie czy wszystkie pliki zewnętrzne (np obrazki użyte w danym węźle struktury) są obecne

Czyszczenie tablic tymczasowych

Skopiowanie danych produkcyjnych do tablic tymczasowych

Zaktualizowanie tablic tymczasowych

Przeniesienie danych z tablic tymczasowych do produkcyjnych

Wprowadzania nowych zadań

Link do frameworka

Materiały KhanAcademy

Kontakt

Matler

By Artur Trzesiok