SellFast
SellFast is a full-stack classifieds platform built for the Serbian market, enabling users to post, browse, and negotiate on used goods. The platform supports multi-photo listings, category-based filtering, real-time buyer–seller messaging via SignalR, and a reservation system with countdown timers to secure purchases. A watchlist feature lets users track items of interest, while an admin panel with audit logs ensures platform integrity.

Tech Stack
Key Features
Advertisement Management
Users can create, edit, and delete multi-photo listings with titles, descriptions, prices, categories, and tags. Listings display view counts and support status transitions (Available → Reserved → Sold).
Real-Time Messaging
Buyers and sellers communicate through an in-app inbox powered by SignalR, with real-time delivery and notification badges.
Reservation System
Buyers can place time-limited reservations on listings. A countdown timer is shown on both the listing page and the homepage banner, and the seller can confirm or reject the purchase.
Advanced Search & Filtering
Users can search listings by keyword, category, and city, with results sorted by relevance or recency. Category pills on the homepage enable quick browsing.
Watchlist & Notifications
Users maintain a personal watchlist of saved ads and receive real-time notifications for status changes, messages, and reservation updates.
Admin Panel & Audit Logs
Administrators can manage categories, moderate listings, handle support tickets, and review a full audit log of platform actions.
Challenges & Solutions
Challenge
Implementing real-time features without polling
Solution
Integrated ASP.NET Core SignalR to push messages and notifications to connected clients instantly, avoiding the latency and server load of polling-based approaches.
Challenge
Managing reservation expiry consistently across clients
Solution
Stored reservation expiry timestamps server-side and used a client-side interval to derive remaining time from the server timestamp, preventing clock-drift issues.
Challenge
Coordinating complex UI state across Redux slices
Solution
Decomposed the store into focused slices (listings, auth, watchlist, categories) with async thunks for all API calls, keeping the component layer thin and side-effect-free.