Prvi hakaton u 2024
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.