Hakaton Januar 2024

Prvi hakaton u 2024 :smiley:
Mozemo sakupimo ideje ovde.

Primeri:

Task manager

Imao sam ideju da bi bilo korisno imati todo listu, koja je lako pristupacna i gde ljudi mogu da se prijave da odrade neki deo posla. Ovo je korisno za Decentralu, ali i za sve drustvene radne akcije. Jednostavno self-hosted web aplikacija gde svako moze da stavi predlog za nesto sto treba da se uradi i da svako moze da se prijavi da to odradi. Bila je ideja da koristimo git repo sa issueima za to, ali to zahteva da se ulogujes svaki put na gitea-u, a i zahteva ceo gitea server da bi koristile druge organizacije. Web aplikacija bi bila vise user-friendly.

Treba pogledati da li vec ima nesto ovako, ako ne, mozemo napraviti.

–Backend–

Tako da ideja je recimo da koristi SQL, sa tabelom Task, koja ima polje za naziv i opis posla koji treba da se uradi.

Takodje recimo da ima i tabelu User, koja ime polje za username i kontakt.

Dodana tabla je potrebna da napravi relaciju Task-User relaciju, to jest da ima polja User i Task, gde se cuva koji korisnik se prijavio da ce da zavrsi koji task.

Naknadno bilo bi dobro i uvesti neku vrstu svrstavanja taskova u vece grupe/celine, kao radne akcije, to jest projekte. U aplikaciji trebalo bi imati razliciti URL za svaki projekat i razlicitu bazu taskova. Za ovo bi bila potrebna jos jedna tabela Project, koja ima ID,ime i opis kranjeg cilja projekta, gde bi ID bio tekst (moze biti samo redni broj) koriscen u URLu koji prikazuje tabelu taskova koji su deo tog projekta i ljudi koji su se za taj deo posla prijavili. Zatim bi bila potrebna tabela relacije Project-Task koja ima polja project i task, gde pisu koji task je deo kog projecta.

Zbog slicnosti tabele Project i Task i dodavanja dodatnih featura posle, bilo bi korisno da su obe tabele ustvari ili ista tabela, sa dodatnim poljem Depth, tipa int, gde bi project samo bio depth sa vrednosti nula. Ovo bi dodatno omogucilo beskonacnu dubinu stabla pravljenja podtaskova

Za buduce feature moglo bi se doadti i polje Public key za korisnika i digitalni potpis za prijavljivanje na task u Task-User relaiciji. Dodatno bi moglo biti implementirano glasanje za prioritet taskova i projekata. Ovo bi takodje zahtevalo dodavanje novog polja za tabele Task i Project koja drzi vrednost int i zove se priority, kao i novu tabelu koja cuva izglasane prioritete zvanu Votes, koja ima polja, user, task, priority, signature. Votes bi cuvala koji korisnik je glasao za koji prioritet kog taska i digitalni potpis tog glasanja. Ako su tabele za Task i Project ista tabela, onda bi moglo glasati za svaki projekat ili task koriscenjem iste tabele.

–Frontend–

Potrebno je napraviti index stranicu sa listom svih projekata, kao i stranicu za pravljenje naloga, koja ne mora sadrzati lozinku, ali moze sadrzati polje za javni kljuc.

URL za stranice projekata bi se generisale u formatu /projects/ID , gde je ID vrednost polja ID iz tabele Projects. Na stranici bi trebalo prikazati tabelu sa nazivima taskova i ko se prijavio da ih obavi, dok klikom na task bi nas odveo na stranicu sa opisom taska ili samo otvorilo drop-down tekst sa opisom.

Ako bi se koristila ista tabele za projekte i taskove, URL za projekte moze ostati isti, sa tim sto se samo koristi za taskove sa dubinom = 0. A za ostale se otvara nova stranica sa URLom /task/ID koja bi izgledala identicno kao projects stranica.

2 Likes

Takodje mozemo nastaviti sa pisanjem clanaka za libre casopis, ovo je sto smo do sad uradili https://libre.dmz.rs/books/broj-52 . Imamo vec neke ideje takodje sakupljene na https://libre.dmz.rs/books/broj-52/page/ideje-za-clanke, koje nismo jos napisali. Clanak moze bude mini tekstic od par recenica, samo kao vesti, a moze biti i ceo tekst o nekoj temi, najbolje nekom koja je bila aktuelna od zadnjeg broja casopisa, koji je izasao u 2019.

2 Likes

Ja bih radio ovo.

Videcu da do vikenda napravim neke wireframe-ove i predloge za modele, pa da se prodiskutuje dodatno i bolje definise koje feature da sadrzi.

Cak i da ne bude tema hakatona, mislim da bi bilo dobro uraditi, nezavisno.

1 Like

Samo sam pretvorio tvoj opis SQL baze u dijagram:

dbdiagram_task_tool_decentrala.pdf (212.8 KB)

Ja bih mozda ostavio Project i Task tabele kao odvojene. Beskonacno nestovanje je dobar argument za to da budu jedna, sa poljem depth, ali nisam siguran da vidim smisao imati vise od

Project > Task > Subtask

Dodao sam label polje u Task, kako bi na front-u mogli task-ovi dodatno da se grupisu u kao neke celine, radi preglednosti.

Sto se tice URL-ova, mislim da bi ovo mogla da bude SPA, pa da url-ovi jednostavno odgovaraju endpoint-ima. Mislim da kao interni tool nema mnogo potrebe osvrtati se na SEO, pa ni na server-side rendering, tako da bi SPA bilo najprostije.
Nisam do sada stigao neki dizajn da probam, i mozda to necu ni stici za vikend, posto cu slabo imati prilike da budem za kompom. Od ponedeljka bih mogao.

Sto se tice tvog predloga za autorizaciju pomocu PGP kljuca, o tome ne znam nista. Trebalo bi ovo malo detaljnije mozda prodiskutovati.

1 Like

Ekstra! :slight_smile:

Dijagrami su bas bas korisni

Implementirane sve osnovne funkcionalnosti Task mangera na https://gitea.dmz.rs/Decentrala/taskmanager

Sad je i online na https://todo.dmz.rs

1 Like