Početna
  • Radovi
  • O meni
  • Kontakt
EN/BS

Dentis

Web aplikacija za stomatološku ordinaciju: odaberi uslugu, doktora i termin, a zdravstvene podatke podijeli s ordinacijom prije nego što uopće dođeš.

Naslovna slika projekta Dentis
Year
2026
Role
Samostalan projekat: dizajn, frontend, backend i baza podataka
Platforms
Web
Next.jsTypeScriptPrismaPostgreSQLBetter AuthHeroUIMotion

Pregled

Dentis je portal za zakazivanje termina i pacijente izmišljene stomatološke ordinacije. Pacijent u tri koraka bira uslugu, doktora i vrijeme, a zdravstvene podatke čuva na jednom računu, pa doktor unaprijed zna sve bitno kada pacijent dođe.

Od prvog klika do zakazanog termina

  1. Odaberi uslugu

    Pogledaj trajanje i cijenu

  2. Odaberi doktora

    Samo doktori koji je nude

  3. Datum i vrijeme

    Radni dani i slobodni termini

  4. Server provjerava

    Pravila i preklapanja

  5. Termin je sačuvan

    Počinje kao „u obradi“

Odaberi šta ti treba i vidi koliko traje

Svaka usluga prikazuje koliko traje i koliko košta. Bočni pregled prati pacijenta kroz sva tri koraka, pa uvijek zna šta je do sada odabrao.

  • Šest usluga, svaka s trajanjem i cijenom
  • Cijene „od“ za tretmane koji zavise od slučaja
  • Trajanje određuje koliko doktorovog dana posjeta zauzima
Ekran za odabir usluge u aplikaciji Dentis
Ideja

Najbolji termin je onaj na kojem doktor već zna ko si. Dentis omogućava pacijentima da zdravstvene podatke podijele prije posjete, a ne na recepciji.

Ko koristi aplikaciju

Pacijent

  • Bira uslugu, doktora i vrijeme
  • Otkazuje termin kada se planovi promijene
  • Unosi alergije, lijekove, bolesti i bilješke
  • Čuva termine i zdravstvene podatke na jednom računu

Doktor

  • Ima vlastitu vrstu računa, odvojenu od pacijenata
  • Nudi odabrani skup usluga
  • Prima termine zakazane kod njega

Cijela posjeta na jednom mjestu

Račun se otvara s onim što je najvažnije: sljedećim terminom, popunjenošću zdravstvenog profila i mjestom za obavijesti.

  • Sljedeći termin s doktorom, datumom i odbrojavanjem
  • Kartica zdravstvenih podataka s trakom napretka
  • Prečice do termina, dokumenata i profila
Pregled korisničkog računa u aplikaciji Dentis

Ispod haube

Vrijeme kao minute

Vrijeme se čuva kao broj minuta od ponoći, pa je 540 isto što i 09:00. Datum je običan tekst poput 2026-11-27, čime se izbjegavaju problemi s vremenskim zonama.

Server ima posljednju riječ

Termin mogu zakazati samo prijavljeni pacijenti, i to radnim danima između 09:00 i 18:00, nikada za danas ili za prošlost. Interfejs skriva neispravne opcije, a server ih odbija.

Cijena se kopira

Termin čuva vlastitu kopiju cijene u trenutku zakazivanja, pa kasnija promjena usluge nikada ne mijenja stari termin.

Zdravstveni profil po cjelinama

Alergije, lijekovi i bolesti čuvaju se kao liste, uz bilješke. Svaka cjelina može se označiti kao završena, a to puni traku napretka.

Izazovi

Problem

Dva termina istog doktora nikada se ne smiju preklapati, čak ni kada posjeta od 45 minuta naiđe na termin od 30 minuta.

Solution

Svaki termin čuva početak i kraj u minutama. Prije spremanja server traži svaki aktivan termin tog doktora u taj dan koji počinje prije nego što novi završi i završava nakon što novi počne. Otkazani termini se ne računaju.

Problem

Pacijenti, doktori, usluge i termini međusobno su povezani, a prvi model koji sam nacrtao nije izdržao.

Solution

Korisnik može imati račun pacijenta ili doktora, doktori su povezani s uslugama koje nude, a termin povezuje pacijenta, doktora i uslugu.

Problem

Datum i vrijeme lako je pogrešno obraditi, posebno kod vremenskih zona i dana u sedmici.

Solution

Prestao sam prosljeđivati Date objekte. Datum se prenosi kao tekst, a vrijeme kao minute, dok se Date objekat koristi samo za provjeru dana u sedmici.

Kako sam ga izradio

Next.js + TypeScript

Interfejs i serverske akcije u jednoj bazi koda, a pravila zakazivanja nalaze se na serveru.

Prisma + PostgreSQL

Pacijenti, doktori, usluge, termini i zdravstveni profili povezani su jasnim relacijama i indeksima.

Better Auth

Registracija i prijava, a računi pacijenata i doktora nadograđeni su na korisnika.

HeroUI

Pristupačne komponente za osnovne dijelove, pa je vrijeme otišlo u vlastiti izgled.

Motion

Male animacije koje potpuno zaobljeni interfejs čine življim.

Izgled i dojam

Dentis je dizajniran direktno u kodu, a pisan je fontom Manrope. Zelena je boja koju većina ljudi povezuje sa stomatologijom, a topla krem boja zamjenjuje običnu bijelu jer je jednostavno ljepša za oko. Sve je potpuno zaobljeno, u iOS stilu, kako posjeta stomatologu ne bi djelovala previše klinički.

Sljedeće na redu

  • Pacijenti prije prve posjete učitavaju vlastite dokumente, poput starih rendgenskih snimaka
  • Doktori nakon završetka termina dodaju datoteke uz termin
  • Doktori ostavljaju kratke komentare uz termin, poput bilješke, a ne klasičnog chata uživo

Prikazi aplikacije

Ekran za odabir datuma i vremena u aplikaciji Dentis
Datum i vrijeme
Ekran za odabir doktora u aplikaciji Dentis
Odabir doktora
Ekran za prijavu u aplikaciji Dentis
Prijava
Dijalog s lijekovima u zdravstvenom profilu aplikacije Dentis
Zdravstveni podaci

Šta sam naučio

01

Vrijeme su samo brojevi

Minute od ponoći pretvorile su preklapanja u jednostavno poređenje, a konačno razumijem i kako se ponaša Date objekat.

02

Neka server odlučuje

Skrivanje neispravne opcije u interfejsu je ljubaznost. Njeno odbijanje na serveru je pravo pravilo.

03

Razumij, ne koristi samo

Detalje Prisme, Reacta i TypeScripta koje sam ranije samo slijedio sada mogu sam objasniti.

Svi projekti

Sljedeći projekat

Aven


Radimo zajedno

Imaš projekat na umu?

Trenutno sam dostupan za nove projekte. Pretvorimo tvoju ideju u nešto stvarno.

Javi mi se
Početna
  • GitHub
  • LinkedIn
  • E-Mail

© 2026 — Dizajnirao i razvio Tarik Čelić