Profile

    Nikola Ivanović

    Software Engineer and and Technical SEO Specialist crafting elegant solutions at the intersection of design, technology and search. Passionate about building products that make a difference.

    Skills & Technologies

    A curated collection of technologies I work with daily to build exceptional digital experiences.

    Featured Work

    A selection of projects that showcase my passion for building exceptional digital products.

    Hiking Club Website
    Website

    Hiking Club Website

    Website for Serbian Hiking Club that belongs to Mountaineering Association of Serbia. Website have, home, about, plan, gallery, gallery/:year and gallery/:year/:id page, events page and events/:id page and of course contact page.

    PWA Hiking Competition App used on Regional Hiking Action - Scan QR Codes on trail and get badges and points with realtime data, notifications and offline mode sync
    Video

    PWA Hiking Competition App used on Regional Hiking Action - Scan QR Codes on trail and get badges and points with realtime data, notifications and offline mode sync

    PWA Hiking Competition App that was used on official regional hiking action organized by the local hiking club that is part of Mountaineering Association of Serbia. After user is authetnicated, user can pick up their team, and they can collect badges and get points in the name of that team. Multiple users can represent one team. User can scan code on trail or enter code manually. After badge is collected, other users will be notified that the other team collected badge, how many points they scored and also they will be notified if leaderboard changed and if other team moved to different place (they will get gold/silver/bronze toast message based on the place they took, or purple one for other places). Also they will get notification if theier team scored. The leaderboard is updating in real-time, and also if app is minimized and other app used on phone more then 5 seconds, when user gets back this is detected and new data is fetched, so that data is always fresh. Also there is refresh button that refreshes all data with cooldown of 30 seonds. Also there is possibility of using the app offline. User needs to refresh the page so all the resources are cached, and the data is saved locally. Also when user turns off mobile data, app detects this and shows indicator that the user is in offline mode, and when user collects the badge in badges section, next to collected badge there is offline indicator that the badge is collected offline. After user gets back online the data is synced and updated. If multiple users collected same badge offline (online this is not possible, because after one team member collects the badge, that badge is unavaible for scanning), the data is synced and updated with best time of collecting the bage (earliest). So if one user collects badge 2 minutes after first user, and is first to go online, that is the timestamp that is going to be saved in the DB, but after other user gets online, the time of collected badge is checked and if this user's time is better then the timestapt in the DB, then its updated with that timestamp. Every badge have specific points and rarity. The calculation and determination of winner and what place the team will take is based on points and the time the badges are collected. There are totally 12 badges and 434 points. There is dark mode and also there is details (trail-info) page about that trail, with description, Wikipedia text, images and stats (height, duration, length, type, difficulty and elevation).

    National Hiking Day in Serbia Event Page
    Website

    National Hiking Day in Serbia Event Page

    This project is a website for National Hiking Day in Serbia, organized by the Mountaineering Association of Serbia together with a local hiking club. The site provides visitors with a complete overview of the event and the broader value of hiking, featuring an about section on National Hiking Day, detailed information about the prepared trail with a Komoot-recorded route, and practical preparation and safety tips. It also includes galleries with photos from past events and images captured along the trail, offering participants a visual preview of the experience.

    🧑‍🍳 RecipesAI made with Next.js, AI SDK, Tanstack Query, Clerk, Neon, Prisma, TypeScript, shadcn/ui and with PWA support
    App

    🧑‍🍳 RecipesAI made with Next.js, AI SDK, Tanstack Query, Clerk, Neon, Prisma, TypeScript, shadcn/ui and with PWA support

    Authenticated user can generate 4 recipes based on the inputed ingrediants. Newly generated recipes can be viewed and added to multiple collections (default 'Favourites' and newly created ones). User can search and sort through collections and recipes with paginated results. If recipe is unsaved from collection and it is not part of other collections then it is deleted, also when collection is deleted all recipes from that collection that are not part of other collections are deleted.