
Project Overview
“Behind every smooth website is a well-structured system keeping everything in sync.”
This was a passion project I worked on in my free time for KK Dinamo Zagreb, one of Croatia’s professional basketball clubs. The goal was to modernize the club’s online presence with a dynamic backend — replacing manual updates and scattered content with a single, robust admin system.
The frontend was handled by collaborators, while I focused entirely on designing and building the backend infrastructure that powers the live site.
Key Capabilities
👥 Roster & staff management
Admins can create, edit, and publish profiles for players and coaches — with position, stats, bio, and media.
📝 Blog & news engine
A simple CMS for posting articles, announcements, and match reports — complete with cover images and tags.
🔒 Role-based admin access
Club admins can manage everything via a protected dashboard, while media staff have limited editorial access.
📂 Media handling
Photos and videos are uploaded, optimized, and served via a CDN-friendly solution using Cloudinary.
Technologies Used
- Backend: Node.js with Express
- Database: MongoDB + Mongoose
- Admin Panel: Custom-built UI using