Backend - SirCrayzyJelly/AI_Tutor GitHub Wiki

Django baza podataka


Uporabom django knjižnice napravljen je "Web framework" koji pomaže pri brzom razvoju web aplikacije, a za spremanje i manipulaciju podatcima koristi SQLite ili MySQL.

Upute za postavljanje baze podataka u vlastitom radnom okruženju:

  1. Preuzmi posljednju verziju s main brancha
  2. Prati bash komande:

pip install django

# Za naredne komende potrebno je smjestiti se u folder u kojem je manage.py
python manage.py makemigrations 
python manage.py migrate
python load_from_file.py # Uvoz aktualnih podataka iz initial_data.json
python manage.py runserver   # Ako želimo pristupiti django serveru da provjerimo bazu podataka; Username je ime developera i vama dojijeljena lozinka

Visit: http://127.0.0.1:8000/admin/ to view and manage your data.


Osim osnovnih postavka kao što je kreacija i uključivanje aplikacije za razvoj bilo je potrebno kreirati modul formata CSV dokumenta (lekcija, pitanje, odgovor, link) te python skriptu (** import_qa_csv.py**) za čitanje CSV datoteke, raščlanbu i spremanje podataka u kreirani modul (klasu) QAEntry.

Paziti da skripta ima pravilno kodiranje (utf-8 u ovom slučaju) te da CSV datoteka bude u istom kodiranju. Predlaze se radi jednostavnosti da se CSV fromat sprema u Notepad (.txt) datoteku radi lakšeg određivanja kodiranja


Kako bi se provela provjera i radi lakšeg upravnjanja pod admin.py dodaje se:

from django.contrib import admin
from .models import Message

admin.site.register(Message)

Kreiranje (učitavanje) našeg iskodiranog modula QAEntry

python manage.py makemigrations
python manage.py migrate

Kreiranje servera:

python manage.py createsuperuser



Učitavanje i spremanje baze u svoje razvojno okruženje

Baza je spremljena u initial_data.json dokumentu kako bi se baza mogal normalno prenositi te koristiti.

# Backup (izvoz podataka iz baze)
python dump_to_file.py

# Restore (uvoz podataka u bazu)
python load_from_file.py


Kada se naprave promijene na bazi podataka ili u model.py potrebno je provesti sljedeće korake:

python manage.py makemigrations
python manage.py migrate
python dump_to_file.py



Pokretanje i upravljanje programom

Ako je sve isprogramirano kako treba, CSV je ispravnog fromata i ispravnog kodiranja može se započeti s uporabom skripte za učitavanje podataka iz CSV formata u bazu.

python manage.py migrate   # Obavezno - kreira db.sqlite3 koji je specifičan za svakog korisnika; db.sqlite3 obavezno dodati u .env datoteku

python manage.py import_qa_csv <path/to/your/CSV/file> --subject "Programsko inženjerstvo"  
# Ako je skripta uspješno izvršena trebali bi dobiti poruku: "CSV file has been imported successfully!"
# Umjesto "Programsko inženjerstvo" piše se kolegij na koji se odnose navedena pitanja

Pisanje CSV dokumenta


Kako bi mogli pravilno i lijepo popuniti bazu podataka trebamo se držati nekog pravila pisanja CSV dokumenata pa ćemo zato svaki novi red označavati znakom \n, natuknice ćemo označavati crticom ili točkicom, a kod ćemo pisati kao i inače samo što će sve biti pod navodnim znacima. U slučaju da nema linka, to polje ostaje prazno, a dodaje se samo delimiter (';').
Primjeri:

Zašto učiti asemblerski jezik?;"- Pomaže razumijevanju rada procesora\n- Brži od jezika višeg nivoa\n- Koristan u kritičnim dijelovima koda za performanse\n- Omogućuje pristup operacijama koje kompajleri ne koriste (npr. ROR, RRX)\n- Koristi se za boot kod, drivere, kompajlere\n- Potreban u aplikacijama osjetljivim na kašnjenje\n- Bolje razumijevanje jezika višeg nivoa";

1;"Koji je C kod?";"int main(void) {\n int i; for(i=0;i<10;i++) total+=i;\n}";"http://example.com"

1;"Koji je C kod?";"int main(void) {\n int i; for(i=0;i<10;i++) total+=i;\n}";;

⚠️ **GitHub.com Fallback** ⚠️