Wish list:

  • könyvtárstruktúra ikonjai, képei cserélhetők?
  • Ahol fájlról van szó, a kapcsolódó fájlok adatait is tárolni kellene. pl. egy filmnél: kapcsolódó fájlnevek/könyvtárak, fájlinfók, méretek,

Rétegek – a program logikai felépítése, lentről felfelé haladva:

  • GUI, menük, gombok, megjelenítés
    • felső vízszintes menüsor:
      • könyvtár importálása adott helyről (filmek beolvasása, pl. dvd-n van 5 film, egyszerre mind az ötöt beteszi, és a részletes adatokat már egyenként kitöltöm.)
      • Új könyvtár
      • Új katalógus létrehozása
    • baloldalt fastruktúra, könyvtárszerkezet, pl. mesekönyvek, matek könyvek – bennük a konkrét könyv címek, ráattintva a hely, és egyéb info
    • jobboldalt: kiválasztott elem részletes adatai.
  • alapvető függvények
    • xml fájlokból memóriába objektumok felépítés (ennek a kivitelezésén-célszerűségén még gondolkodom. Érdemes-e a helyi fájlt használni vagy teljesen a memóriában történjen minden?)
      • objektum beszúrás
      • objektum törlés
      • objektum módosítás
      • memóriából xml-be visszaírás.
    • keresés
  • xml adatszerkezetek

Konkrét haladás, megvalósítások

Konkrét könyvtárszerkezet példát készítettem, nézzetek bele.

  • cat_katalogusnev  könyvtárban tárolódik egy katalógus.
  • Egy katalógus elemei:
    • minden xml fájl elejében van egy item_id next=1 bejegyzés, ami a következő elem sorszámát tárolja, ez egy folyton növekvő szám, mint elsődleges kulcs db-ben. Soha nem csökken, új elem beszúrásánál így azonnal tudja a program hogy mi lesz az id-je a következő elemnek.
    • az xml fájlokban egy elemhez ugyanabból a típusú bejegyzésből több is tartozhat. jó példa erre a link ahol egyszerre angol és magyar wikipedia linket is tettem a Harry Potter könyvhöz.
    • az elemeknek nincs kötelező tulajdonsága az id-n kívül. Tudom hogy ez furcsa, de ha a szövegfájlból eltűnik egy sor, mondjuk a szerző egy könyv esetében, a rendszer akkor is működni fog, max a szerző üres lesz.
      A program új elem felvitelekor értelmes mezőket (szerző, cím, kiadás éve, oldalszám?) fel fog tüntetni, és be is szúrja ezeket a mezőket az adatbázisba, de ha valamelyik hiányzik, nem baj.
      Ennek oka: akár kézzel is lehet új sort bevinni az xml fájlba, és ha hibázik a user, mert kihagy valamilyen tulajdonságot, akkor nem történt semmi.
    • images – a katalógusban lévő elemekhez kapcsolódó képek. a fájlok elnevezése: id_emberinev.jpg például.
      Működés: a program az id alapján tudja hogy melyik elemhez tartozik a kép, akár több kép is lehet egy elemhez. Az alsóvonás utáni rész a felhasználónak információ, hogy a program nélkül is tudja a képeket szerkeszteni, pl. képet cserél, vagy módosít, és tudni akarja hogy melyik fájlban mi van.
    • items.xml – ebben van minden elem, ami a katalógusban szerepel (könyv, film, fájl, cd, bármi.) leheséges elem típusok:
      • item type=”book”
      • item type=”ebook”
      • item type=”dvd”
      • item type=”movie”
      • item type=”file”
      • item type=”cd”
      • item type=”other”
      • ==================
      • <dir></dir>   – virtuális mappa, az elemek strukturált tárolására.
        Egy elem több mappába is szerepelhet, pl. több mentés van egy filmről különböző lemezeken.
    • contacts.xml – ebben kapcsolódó emberek vannak. bárki, akinek egy dologhoz köze lehet. író, fordító, előadó, színész, rendező, programozó :-).  Ide tartoznak a cégek, kiadók is.
      Lehetséges contact típusok (a program új könyv/cd/bármi felvitelekor ezeket ajánlja fel:

      • author – szerző
      • translator – fordító
      • artist – művész (zenei előadó, színész, festő, grafikus, illusztrátor, tipográfus, fotós…)
      • publisher – kiadó
  • .

A program célja:

  • egyedek nyilvántartása. Egyedtípusok, rájuk jellemző alap tulajdonságkészlet.
    • könyv típus
    • film típus
    • fájl típus
    • könyvtár, csoportosító elem
  • tulajdonságaik rögzítése / módosíthatósága
    • Az elem nevei (magyar, angol)
    • kapcsolódó emberek, egy elemhez több ember, egy ember több elemhez is kapcsolódhat
    • az elem helyei (halmaz, több példányban is meglehet)
    • méret (értelemszerűen: oldalszám könyvnél, fileméret, hossz filmnél és zenénél)
    • minősítések (mennyire jó, érdemes elolvasni / megnézni 1-5)
    • olvastam-e / néztem-e
    • kapcsolódó képfájl importálása fájlból (netről cím alapján?)
  • Keresés: az elemek tulajdonságaiban
  • Exportálás: sima, gusztusos html fájlba

Programterv:

Az adatszerkezeteket tartom nagyon fontosnak, minden más funkció erre épül. Keresés, beszúrás, exportálás.

Egy katalógus egy könyvtárban és alatta, vagyis lehet váltani katalógusok között. (katalógus: apa, anya, saját például, ha három lakásról van szó, és minden user külön tartja karban a sajátját, néha egyszerű könyvtár másolással egymáshoz átviszik / frissítik.

Tervezett adattároló fájlok (db táblák megfelelői)

  • items – egyedek
  • contacts – kapcsolódó emberek (szerzők, színészek, előadók)
  • images – egy könyvtár, benne ID_szoveges_emberszeru_cim.jpg típusú képfájlok. Ebből az ID a fontos a programnak, ez alapján tudja hogy a 333-as könyvhöz tartozik a 333_matyas_arckep.jpg, de a vege a felhasznalonak kell, program nelkul rogton latja hogy mihez tartozik a fájl.