-
Notifications
You must be signed in to change notification settings - Fork 0
Despre baza de date
Aplicatia foloseste o baza de date SQL, alaturi de database engine-ul SQLite, folosit foarte des in crearea aplicatiilor pentru mobil.
Pentru folosirea SQLite cu Cordova, am nevoie de urmatoarele pluginuri: cordova-sqlite-storage: implementeaza toate functionalitatile SQLite cordova-sqlite-porter: imi permite sa populez baza de date cu niste date initiale salvate intr-un fisier .sql
Baza de date are structura urmatoare: (la momentul screenshoturilor, baza de date era populata cu placeholder data)
Contine id-ul fiecarei categorii, informatii despre aceasta, numarul de lectii disponibile si lectia la care utilizatorul a ajuns (daca a ales categoria aceasta. Daca nu a ales-o, valoarea campului "progress" va fi null.)
Contine informatiile fiecarei lectii, atat sumarul de prezentare(header) cat si paragrafele/imaginile lectiei efective.
Cum TypeScript imi ofera un typesystem peste JS, pot sa-mi definesc propriile tipuri de date prin interfete, si sa folosesc obiecte, vectori care sunt de tipul ala.
In cadrul aplicatiei, interfetele folosite sunt urmatoarele:
export interface Lesson {
//identif
id:number;
categoryId:number;
//header
headerTitle:string;
headerDesc:string;
headerImage:string;
//data
paragraphs: string[];
img: string[];
lessonIndex:number;
isComplete:number;
}
export interface Category {
categoryId:number;
name:string;
desc:string;
img:string;
lessonCount:number;
progress:number;
}
export interface CategoryData {
categoryId:number,
progress:number,
lessonCount:number;
}
unde Lesson, Category au campuri identice cu coloanele prezente in tabelele Lessons, Categories, iar CategoryData este interfata folosita la memorarea caror categorii sunt selectate de catre user, in Local Storage.