self-directed project · community platform · MERN

DialogueDock

A production-style multi-role community platform where people sign in, publish, and moderate content behind secure, server-enforced APIs.

live site: dialoguedock.vercel.app

Context

/context

DialogueDock is a self-directed project, built independently — not a client engagement. It exists to build and run a production-style system end to end: product architecture, MongoDB schema, REST API, frontend, authentication and role enforcement, and deployment.

The problem

/problem

A community platform is only as good as the boundaries around it. Anyone can render a feed; the difficulty is that three different kinds of user — member, admin, super admin — need to see and do different things, and that separation has to hold on the server, not in the interface.

So the build had to answer concrete questions: how identity is established, how authorisation is checked on every request, how content and moderation actions are modelled in the database, and how the same product stays usable on a phone as on a desktop.

Architecture & decisions

/architecture

The decisions below are the substance of the project — the parts that only hold up if they were actually built.

  • Dual-layer authentication

    Firebase Auth handles identity and session establishment on the client. The backend issues and verifies its own JWT for authorization, so the API never trusts a client-side claim about who the caller is or what they may do.

  • Role-based access control

    Three roles — user, admin, super admin — enforced by custom Express middleware on the server. Role checks sit in front of the routes that mutate or moderate content, so an interface that hides an action is a convenience, not the control.

  • Protected route architecture

    On the frontend, a PrivateRoute wrapper plus role-based authorization gates the admin and super-admin areas, keeping navigation coherent with what the API will actually permit.

  • Mobile-first responsive UI

    React with Tailwind CSS and DaisyUI, built mobile-first, so the member feed and the admin tables both work at phone, tablet, and desktop widths rather than degrading into a scaled-down desktop layout.

Evidence

/evidence
DialogueDock member-facing home page showing the post feed, tag filters, and search.
Member view: tag-filtered post feed with search and pagination.
DialogueDock super-admin dashboard showing platform counts, user breakdown, and recent activity.
Super-admin dashboard: platform state and recent activity.
DialogueDock manage-admins screen listing super admins, current admins, and regular users with promote actions.
Role management: the three-tier RBAC surface, enforced server-side.
DialogueDock manage-posts table listing author, title, tag, date, votes, and status with moderation actions.
Moderation: content table with per-post admin actions.

Outcome

/outcome
  • A complete full-stack MERN application, deployed frontend and backend.
  • Authentication running as two layers: Firebase Auth for identity, backend JWT for authorization.
  • Role enforcement implemented server-side across user, admin, and super-admin roles.
  • Responsive UI verified across mobile, tablet, and desktop widths.

Role & scope

/role

Sole full-stack engineer — product architecture, MongoDB schema design, REST API, frontend UI, authentication and RBAC, and deployment.

live site: dialoguedock.vercel.app

Start a project

Built end to end by the person who writes the code. Tell me what the system has to do and I'll tell you how I'd build it.

start a project

next project: Platinum Residence Properties