Back to Projects
    Full Stack Web App

    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.

    ReactASP.NET CoreReduxSignalRClean Architecture
    SellFast

    Tech Stack

    React 18
    Material UI (MUI)
    Redux Toolkit
    React Router DOM
    Axios
    Vite
    ASP.NET Core
    Clean Architecture
    Entity Framework Core
    SignalR
    JWT Authentication
    PostgreSQL
    Docker

    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.