Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fajlformatum es fajlnev ellenorzese feltoltes soran #84

Open
lordblendi opened this issue Oct 14, 2017 · 4 comments
Open

Fajlformatum es fajlnev ellenorzese feltoltes soran #84

lordblendi opened this issue Oct 14, 2017 · 4 comments

Comments

@lordblendi
Copy link
Member

A jelenlegi rendszerben a hallgatok barmilyen fajlnevvel es fajlformatummal feltolthetik a hazit. A plagium kereso pedig csak az elvart es megadott formatummal mukodik. Igy nekunk ez jelentos tobbletmunka, hogy ujra bekerjuk a hallgatok hazijat es feltoltsuk a rendszerbe. Raadasul a hallgatok nem figyelnek az eloirasokra sem. Jo lenne, ha ezeket a hazikat a rendszer visszadobna.

@markfejes
Copy link
Member

Ehhez szükség lesz a DeliverableTemplates-hez felvenni egy attribútumot, mint requiredFileExtension.

A fájlnévkiterjesztésre viszonylag egyszerűen lehet irni egy validálót, viszont hogy egy adott fájl mondjuk tényleg sql fájl-e, vagy egy zip fájl tényleg zip fájl-e, az már időigényesebb lenne.

A kérdésem még, hogy egy beadandó fájlhoz, egy kiterjesztés tartozik, vagy lehet több is?

@jmarton
Copy link
Member

jmarton commented Oct 17, 2017

  • egy DeliverableTemplates rekord egy kiterjesztés (ha ezt vizsgálod, akkor case insensitive ellenőrzéssel)
  • a feltöltés fájlneve mindegy, azt nem kell ellenőrizni. Letöltéskor (és leendő plágiumkeresés exportkor) pont jó, hogy jegyzőkönyvfeltöltés szglab5-frontend#78 szerint kézben tartja a rendszer a fájlnevet. Talán még jobb lenne, ha olyan lenne a fájlnév, hogy: NEPTUN_ExerciseCategory_<DeliverableTemplates.valami, ami a fájl céljára utal, szóköz és ékezet nélkül>.<DeliverableTemplates.extension>, azaz
    • az extension a DeliverableTemplates-ben megadott lenne, és
    • a <DeliverableTemplates.valami, ami a fájl céljára utal, szóköz és ékezet nélkül> lehet a description, vagy (ha már mezőt bővítesz) egy külön mező, amiben report, sql-script, meg ilyenek vannak.

Ennél komolyabbat valóban bonyolult csinálni, mert:

  • érdemes lenne megvizsgálni az anyag mime típusát, hogy az egyezik-e a DeliverableTemplates-be írandó mime típussal.
    • kaptunk már korábban valami.zip néven rar fájlt...
    • nem a böngésző által küldött mime típusra gondolok, hanem amit mondjuk linuxon a file --mime-type visszaad
  • az sql fájlt nem érdemes SQL-ként validálni: text/plain pont jó lenne, de ezt is nehéz megbízhatóan tesztelni. Épp az előbb kaptam pár SQL fájlra "C forráskód" eredményt a file --mime-type -tól.

@jmarton
Copy link
Member

jmarton commented Oct 17, 2017

Ha lesz ismét zip beadás, annál a tartalom mappaszerkezetét és a benne szereplő fájlok listáját szoktuk validálni. A hangsúly a ha részen van: nem tudok róla, hogy idén lesz ilyen, bár az opti-ról még nincs infóm. Tavasszal tipikusan van sok zip beadás.

@markfejes
Copy link
Member

Jelenleg a fájlt ilyen névvel menti le a backend:
https://github.com/bme-db-lab/szglab5-backend/blob/master/endpoints/deliverables/upload.js#L87
Elég sok infó benne lesz a fájlnévben, illetve az AKÉP helyes működéséhez is a fájl végére kell rakni bizonyos infókat (ha az adott deliverableTemplate-ben az AKÉP flag true értékre van állitva)

A letöltéskor igy adom vissza:
https://github.com/bme-db-lab/szglab5-backend/blob/master/endpoints/deliverables/download.js#L79
Ezeken viszonylag egyszerű módosítani

A kiterjesztést fel fogom vinni requiredExtension néven a DeliverableTemplates-be, és ezt hamarosan le is fejlesztem, az olyanra hogy valaki átnevezi a .zip-et .rar-ra más tárgyaknál simán azt mondták hogy köszönik szépen a részvételt...

Jelenleg van egy description attribútum a DeliverableTemplates-ben, ezt a frontendre szántam, amit meg lehet jeleniteni, hogyha ebből csinálunk egy lowercase-t illetve snake_case-t, akkor szerintem megfelel a célra (Jelenleg ilyen értékek vannak benne: "Report", "SQL File")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants