Challenges

Projekat: Imenik

Dobro došli u step-by-step izazov u kojem ćemo zajedno napraviti imenik – aplikaciju za upravljanje kontaktima – koristeći Python (programski jezik), SQLite (baza podataka) i Tkinter (grafički interfejs - GUI).

Cilj ovog izazova je da vas kroz niz kratkih i konkretnih zadataka vodi ka potpunom razumevanju kako se gradi jedan ceo projekat – od unosa podataka u konzoli, pa sve do funkcionalne GUI aplikacije povezane sa bazom podataka.

Svaki zadatak je pažljivo osmišljen kako bi vas postepeno uvodio u nove koncepte, bez preopterećenja. Nema potrebe da žurite – zadaci su kratki, jasni i odlični za sve koji žele da uče kroz praksu.

Svakog utorka i petka objavljujemo novi zadatak koji vas vodi korak bliže gotovom projektu.

Počnite odmah, i za nekoliko nedelja imaćete kompletan softver koji možete koristiti, prikazati ili nadograđivati!


Napišite program koji traži od korisnika da unese: ime, prezime, broj telefona, email. Zatim ispišite te podatke na ekranu.


Umesto da ih samo ispišete, smestite sve unete podatke u listu.

Primer: ["Petar", "Petrović", "0601234567", "petar@gmail.com"]


Omogućite unos više kontakata. Svaki kontakt neka bude lista, a svi kontakti neka se smeštaju u jednu veću listu (imenik).


Ispišite sve kontakte iz imenika, svaki u posebnom redu, lepo formatirano.


Omogućite korisniku da unese ime, a program da pronađe i prikaže kontakt(e) koji odgovaraju tom imenu.


Dodajte opcije:

  • 1. Dodajte novi kontakt
  • 2. Prikažite sve kontakte
  • 3. Pretraga
  • 4. Izlaz
Koristite while True petlju i if grane za upravljanje.


Dodajte opciju 5: Brisanje kontakta po imenu (prvo pronađite, pa izbrišite iz liste).


Omogućite da korisnik ažurira kontakt (npr. promeni broj telefona nekome).


Dodajte provere – npr:

  • broj telefona mora imati najviše 10 cifara
  • email mora sadržati "@"
  • ime i prezime ne smeju biti prazni


Upišite sve kontakte u .txt fajl kako bi podaci ostali sačuvani i nakon gašenja programa.


Prilikom pokretanja programa, učitajte postojeće kontakte iz fajla u listu.


Napravite bazu imenik.db i tabelu kontakt. Prebacite sve kontakte iz liste u tabelu.


Kada korisnik unese nov kontakt, umesto da se doda u listu, direktno ga upišite u SQLite bazu.


Umesto liste, podaci se sada čitaju direktno iz baze i prikazuju korisniku.


Implementirajte pretragu po imenu koristeći SQL upit.


Omogućite korisniku da unese ime, a program da pronađe i obriše kontakt iz baze.


Dodajte opciju da korisnik može izmeniti podatke postojećeg kontakta (po ID-ju ili imenu).


Napravite jednostavan GUI u tkinter-u sa input poljima za ime, prezime, telefon i email i dugmetom "Dodajte kontakt".


Dodajte dugme "Prikažite sve" koje prikazuje sve kontakte iz baze unutar GUI-ja (npr. u Listbox-u ili Text polju).


Dodajte funkcionalnosti:

  • Dugme za pretragu kontakta po imenu
  • Dugme za brisanje
  • Dugme za ažuriranje postojećeg kontakta