Case Study • SheIsAction
Back to portfolio

SheIsAction
Social Platform

A full-stack social networking platform for women in sports, built with a MERN architecture and expanded with realtime messaging, geospatial discovery, brand content workflows, moderation tooling, and admin analytics.

MongoDB + MongooseExpress + Node.jsReact 18 + HooksRedux Toolkit + PersistMUI v5 + Data GridSocket.IO (server + client)JWT + bcryptCloudflare ImagesGoogle Maps APIStripe + NodemailerNewRelic APM

Executive Summary

Product Type

Community platform with social, content, messaging, and business surfaces

Technical Depth

Realtime sockets, geospatial search, polymorphic moderation, and analytics dashboards

Business Layer

Brand portals, articles, subscriptions, sponsorships, and engagement metrics

Career Context

Early foundational project that shaped my platform architecture thinking

Overview

Product context and why this project still matters.

The Problem

Women in sports needed a community platform that combined social discovery, local groups, content, messaging, and brand participation instead of siloed tools and generic social experiences.

The Opportunity

Build a full-featured community platform with social networking, realtime chat, geospatial discovery, content publishing, business/brand workflows, and moderation controls in one system.

My Role

One of the first major applications I worked on. I contributed as a full-stack engineer across frontend and backend implementation, realtime features, data modeling, and platform functionality delivery.

Why It Matters

This project is an early foundation piece in my portfolio because it shows broad systems thinking early: social graph logic, chat, geospatial queries, moderation, brand tooling, payments, and analytics.

Domain Model Snapshot

Community Graph

Users, friends, following, blocking/soft-blocking, recommendations, group membership, and role assignments form the social access and interaction model.

Content + Engagement

Posts, nested comments, likes, mentions, articles, saves, views, clicks, and flags power the community and brand content loops.

Business + Brands

Brands manage profiles, locations, followers, articles, subscriptions, copywriters/managers, and analytics through dedicated business workflows.

Governance + Moderation

Notifications, preferences, role/permission systems, content flagging, admin dashboards, and sponsor controls support platform operations and trust.

Architecture Decisions

A feature-rich platform architecture spanning social, realtime, and business workflows.

SheIsAction combines community features, chat, content, business tooling, and moderation. The architecture challenge is not any one feature; it is how all of them coexist with acceptable performance, security, and user experience.

Core Runtime Flows

  1. 1User registration/login -> JWT auth + verification/reset flows -> Redux Persist restores session for seamless app usage.
  2. 2Feed interaction -> create post/comment, likes, mentions, edits, flags -> notifications and engagement updates flow through the platform.
  3. 3Group lifecycle -> create/join/request/invite/approve -> group feed and member management behavior changes by privacy settings.
  4. 4Realtime chat -> Socket.IO tracks user online state, typing indicators, new messages, and latest-message/unread updates.
  5. 5Brand publishing -> brand managers/copywriters create articles and manage business profiles while engagement metrics accumulate.
  6. 6Admin moderation -> flags enter review workflow, reviewers resolve with notes/status, and platform analytics track growth/content trends.
  7. 7Location search -> geospatial queries and map visualization support nearby brands/groups/users and richer discovery behavior.

Why These Decisions

MERN + Socket.IO for a feature-rich social platform

Why: The product required fast iteration across social features, content, realtime chat, and admin tooling in one codebase.

Impact: Enabled rapid delivery of broad platform capabilities while keeping a familiar JavaScript stack across frontend and backend.

MongoDB for flexible social/content schemas

Why: Posts, nested comments, notification payloads, brand/location structures, and evolving social features benefit from schema flexibility with targeted indexing.

Impact: Fast feature evolution with Mongoose modeling, while indexes and aggregations handled key performance paths.

Geospatial-first data modeling with GeoJSON and 2dsphere indexes

Why: User, group, and brand discovery is location-aware and needed proper distance calculations and map integrations.

Impact: Efficient geospatial search/filtering and stronger location-based product experiences.

Dedicated flagging model with polymorphic references

Why: Moderation needed to cover multiple content types without duplicating flag workflows per model.

Impact: A reusable moderation pipeline across posts, comments, users, brands, and articles.

Multi-role system with UserRole junctions

Why: Users could simultaneously participate as normal users and platform/business operators (brand manager, copywriter, admin).

Impact: Flexible RBAC without overloading the user model with a single role assumption.

Hybrid notifications (realtime + preference-aware digests)

Why: Community platforms need both immediate feedback loops and user-controlled notification volume.

Impact: Socket-driven immediacy plus scheduled digest email patterns and granular preferences.

Cloudflare Images + direct upload URL patterns

Why: Image-heavy social/content workflows need CDN-backed delivery and scalable upload handling.

Impact: Better media performance and cleaner image lifecycle management across profiles, posts, brands, and articles.

Observability + performance posture early

Why: The platform had broad feature surface and query complexity (social graph, analytics, geospatial, search).

Impact: NewRelic APM, logging, indexing, and pagination helped maintain visibility into performance and runtime behavior.

Backend / API

MERN backend foundations for social graph, content, and platform governance.

The backend supports a broad feature surface: social interactions, community groups, brand/business workflows, moderation systems, search, geospatial discovery, and analytics endpoints.

Authentication, Verification, and Password Security

01

JWT authentication, bcrypt password hashing, verification emails, reset tokens with expiry, activation resend, and role-aware access control underpin the account system.

  • Email verification system
  • Reset password with token expiry
  • JWT token verification middleware
  • Role-aware route protections

Social Graph and User Profile Modeling

02

User profiles include GeoJSON location, sports interests/experience levels, questionnaire responses, social relationships, search criteria, and notification preferences.

  • GeoJSON location on user model
  • Sports + experience + frequency modeling
  • Friends/following/blocking structures
  • Questionnaire and search criteria persistence

Posts, Comments, and Feed Infrastructure

03

Posts support text/images/location/tagging, nested comments, likes, soft-delete, edit tracking, flagging, and feed-level pagination/infinite scroll consumption.

  • Nested comment schema
  • Soft delete support on posts
  • Mention support in posts/comments
  • Feed pagination for infinite scroll

Groups and Community Spaces

04

Public/private groups include geospatial location metadata, membership controls, invite/request workflows, sport and experience filtering, and group feeds.

  • Private/public join flows
  • Invites and join request approvals
  • Group-specific feeds
  • 2dsphere group location indexing

Search, Geospatial, and Discovery APIs

05

Multi-entity search spans users, groups, brands, and articles with filtering, pagination, geospatial constraints, and blocking relationship enforcement.

  • Hybrid search across multiple entities
  • Location radius filtering
  • Blocking-aware search results
  • Verified/published/public visibility filtering

Brands, Articles, and Commerce Features

06

Brand profiles, article publishing, follower analytics, subscriptions, and Stripe-backed business flows create a business/creator surface inside the community platform.

  • Brand managers and copywriters
  • Article draft/publish/archive workflows
  • Follower tracking and engagement metrics
  • Stripe subscription/customer status handling

Moderation, Flagging, and Role Systems

07

Polymorphic flagging, review workflows, resolution tracking, role models, and user-role assignments support trust and platform governance.

  • Polymorphic flag model via refPath
  • Pending -> Reviewed -> Resolved workflow
  • Resolution notes/reviewer metadata
  • Role and UserRole data layer

Mailers, Cron Jobs, and Notification Backends

08

Email services handle verification, resets, invites, and digests, while scheduled tasks support digest delivery and periodic maintenance workflows.

  • Nodemailer email delivery
  • HTML email templates
  • node-cron scheduled jobs
  • Notification digest scheduling

Frontend (React)

Rich community and admin UX built on Redux, MUI, and reusable interaction patterns.

The React frontend spans consumer social experiences, brand portal functionality, and admin oversight tooling, which makes state management and UI system consistency especially important.

React + Redux App Shell

01

React 18 with Redux Toolkit and redux-persist powers a feature-dense application shell with route-based experiences for users, groups, chat, brands, and admin dashboards.

  • Redux Toolkit async thunks
  • Redux Persist for seamless sessions
  • React Router v6 navigation
  • Socket.io-client integration

Feed and Community UX

02

The frontend supports social posting, nested comments, likes, mentions, infinite scroll, and responsive interaction patterns for community engagement.

  • Infinite scroll feed
  • Nested comment interactions
  • Like/unlike and flag flows
  • Rich text support and media posts

Groups, Profiles, and Discovery Interfaces

03

User profiles, group pages, location-aware discovery, and filtering UIs connect the social graph and geospatial search features into usable flows.

  • Profile and social relationship screens
  • Group membership and invite UI flows
  • Location-based search/filter UX
  • Saved search history patterns

Brand Portal and Article Authoring

04

Brand users access portal experiences for article creation/publishing, business profile management, and analytics/engagement tracking.

  • Quill-based article authoring
  • Draft/published/archived states
  • Brand dashboard and metrics views
  • Cloudflare Images-backed media flows

Admin Dashboards and Moderation Tools

05

Admin UI surfaces platform analytics, content moderation queues, user/brand/group oversight, and system management entities like roles, tags, and sponsors.

  • Analytics dashboards (users/posts/brands/articles)
  • Flag review and resolution workflows
  • Role and permission management UI
  • System entities and sponsorship management

UI System, Forms, and Rich Interaction Tooling

06

MUI v5, Formik/Yup, Quill, dropzones, carousels, data grids, date pickers, and theme toggles support a rich consumer + admin hybrid UX.

  • Dark/light mode toggle
  • Formik + Yup form handling
  • Quill rich text editing
  • MUI X Data Grid and advanced UI widgets

Frontend Quality and Performance Patterns

07

Optimized selectors, lazy loading, optimistic updates, debounced search, and test tooling (Jest/RTL/Enzyme) support maintainability and responsiveness.

  • Reselect optimized selectors
  • Debounced search inputs
  • Lazy loading/code splitting
  • Jest + React Testing Library + Enzyme

Realtime Messaging & Notifications

Engagement loops powered by Socket.IO and preference-aware notification design.

Realtime chat and notification behavior are central to the platform experience, but the more interesting architecture detail is how realtime delivery coexists with unread tracking, categories, and digest/pref systems.

Realtime Messaging

01

One-on-one and group chats support realtime delivery, latest message tracking, unread counts, and group chat admin controls.

  • Chat and Message models
  • Group chat admin support
  • Unread message counts
  • Latest message tracking

Socket.IO Presence and Interaction Events

02

Socket events handle online/offline state, active users, typing indicators, message notifications, connection status, and reconnection behavior.

  • Online/offline status tracking
  • Typing indicator events
  • Ping/pong connection status
  • Automatic reconnection behavior

Notification Platform (Realtime + Async)

03

Notifications span social, community, brand, article, and messaging events with read states, categories, and user preference controls.

  • 20+ notification types/categories
  • Granular push/email preference settings
  • DND / quiet hours / snooze
  • Daily/weekly digest frequency options

Business & Admin Platform

Brand monetization, content publishing, sponsorships, and governance tooling.

SheIsAction goes beyond a social feed. It includes business-facing and platform-ops capabilities that materially change the architecture and data model complexity.

Brand & Business Layer

Brand profiles include multi-location geospatial data, opening hours, social links, brand managers/copywriters, follower analytics, ratings, and subscription state.

Article CMS + Content Strategy

Rich article authoring with categories, sport tags, custom tags, draft/publish/archive states, and deep engagement metrics supports a content-led business channel.

Sponsorship System

Scheduled sponsor campaigns support targeting by location/interests/age range plus impression and click tracking for monetization workflows.

Admin Analytics + Moderation

Admin dashboards cover growth, geography, sport popularity, content performance, and flagged content review workflows with resolution tracking.

Ops, Security & Performance

Infrastructure and runtime considerations for a feature-dense social platform.

The platform combines consumer UX, business tools, and heavy data operations. Security, indexing, observability, and runtime instrumentation are essential, not optional.

Security Stack

Helmet, CORS, JWT verification, input validation (Joi), password hashing, token expiry, and XSS protection patterns (DOMPurify on frontend rendering) support platform safety.

Observability

Morgan request logging and NewRelic APM provide runtime visibility across a broad feature surface with many query and integration paths.

Performance Strategy

MongoDB indexes (text/geospatial/compound), aggregation pipelines, pagination, CDN image delivery, lazy loading, and optimized queries support scale and responsiveness.

Infrastructure Integrations

Cloudflare Images, Google Maps, Stripe, email services, and Socket.IO create a production-relevant integration landscape with real operational complexity.

Tradeoffs & Constraints

High ambition early, with the expected complexity that comes with it.

This project shows what happens when a platform grows across social, business, and admin domains. The tradeoffs are real, but they are also exactly what made it such a strong technical foundation.

Broad feature scope vs simplicity

Rationale: The platform combines social networking, realtime chat, geospatial discovery, content publishing, brands, sponsors, and admin analytics.

Tradeoff: High product ambition and strong architecture learning value, but a large surface area to maintain and test comprehensively.

Flexible schemas vs stricter normalized models

Rationale: MongoDB/Mongoose enabled rapid evolution of social/content features and nested structures.

Tradeoff: Fast iteration and feature breadth, with additional responsibility on indexing, aggregation design, and schema discipline.

Realtime + digest notifications vs simpler notification model

Rationale: Community engagement needs immediate signals and user-controlled volume management.

Tradeoff: Richer user experience but more backend complexity across preferences, scheduling, and event routing.

Many external integrations vs lower operational surface

Rationale: Maps, payments, email, image hosting, and APM each add meaningful value to the platform.

Tradeoff: Greater capability and realism, with higher configuration and operational management overhead.

Early-career codebase maturity vs architectural ambition

Rationale: As one of my first large applications, the system grew quickly across many domains.

Tradeoff: A strong demonstration of breadth and problem-solving, with obvious later opportunities for deeper modularization and contract hardening.

Outcomes / Metrics

Early-career project, mature architecture signal.

I do not list public metrics here, but SheIsAction remains a strong portfolio asset because of the breadth and technical depth of what was implemented and integrated in one platform.

Outcomes / Delivery Signals

  • Built a genuinely broad full-stack platform early: social networking, groups, realtime messaging, brands, content, sponsorships, and admin analytics.
  • Implemented advanced technical capabilities (geospatial search, realtime sockets, polymorphic moderation, digest notifications) beyond a basic CRUD app.
  • Delivered multi-role business and admin workflows, not just consumer-facing features.
  • Integrated production-relevant services including Cloudflare Images, Google Maps, Stripe, email delivery, and APM monitoring.
  • Established foundational experience in data modeling, indexing, aggregation pipelines, and feature-rich frontend state management.
  • Created a strong architecture storytelling asset that shows early depth and range in platform engineering.

Quality / Performance Signals

  • Database indexing strategy across text, geospatial, and compound query paths
  • MongoDB aggregation pipelines for analytics and complex reporting needs
  • Pagination, lazy loading, and optimistic UI patterns in key experiences
  • Jest + React Testing Library + Enzyme + mocking strategy for frontend testing
  • NewRelic APM for runtime monitoring and performance visibility
  • Cron-driven scheduled tasks for digest emails and maintenance workflows

What I'd Improve Next

Revisit with stronger modularity, contracts, and event-driven discipline.

If I were evolving this platform today, the focus would be on modularizing feature domains, strengthening contracts, and improving test/observability coverage around the most complex realtime and moderation workflows.

Refactor broader domains into clearer service boundaries/modules as feature ownership grows.

Standardize API contracts and typed DTOs across frontend/backend for stronger long-term maintainability.

Increase automated test coverage around realtime, notification preference edge cases, and moderation workflows.

Evolve search and recommendation quality beyond regex/text + rule-based filtering where product demand justifies it.

Introduce more explicit event-driven patterns for notifications and analytics as platform scale grows.

Continue performance profiling and query optimization across heavy aggregation and feed/discovery paths.

Contact

Building a community platform with realtime, content, and business complexity?

I can help shape the architecture so social features, moderation, monetization, and admin tooling scale together instead of becoming separate systems too early.