Back to portfolio
PlatformClient workFeatured

YouSpace

A platform that helps families find the right specialists for children and teenagers, and lets professionals publish their profile, articles, and events within an ecosystem featuring verification, subscriptions, and centralized administration.

YouSpace

Core stack

PHP 8.2
Laravel 12
Eloquent ORM
Laravel Sanctum
Laravel NotificationsLaravel QueuesArtisan CommandsDatabase Cache & QueueRelational SQLNetopia Payments SDKReact 19React Native 0.79Expo 53Expo RouterReact Native WebExpo SecureStoreTypeScript 5.8PWA static exportSSH deployment script

The challenge

The product had to serve two different needs at once: families need fast discovery and comparable information, while specialists need verifiable professional profiles, visibility, and editorial tools. Layered on top of that are administrative approval, subscription-gated access, 3D Secure and recurring payments, content moderation, events with co-organizers, and the SEO requirements of a client-rendered app. The technical challenge was keeping these paths coherent across the UI, the API, the Eloquent relationships, payment states, and operational notifications.

The solution

Laravel 12 and a relational database centralize users, roles, profiles, education, credentials, specializations, conditions, subscriptions, payment orders, articles, reviews, and events. Sanctum protects the API, and middleware separately checks authentication, role, account approval, and active subscription. Expo Router provides the same page structure for web and mobile, with SecureStore on devices and localStorage on web, a shared API client, and search filters synchronized with the URL. The Netopia integration is isolated in a payment service and uses PaymentOrder to correlate the user and the order before the webhook; subscriptions keep cycle, renewal, cancellation, bonus, and failure data, and events combine payment with editorial approval. File uploads are validated as images and stored on the public disk, and emails cover account confirmation, password reset, approvals, and subscription events.

Notable complexity

YouSpace connects families with psychologists, psychotherapists, psychiatrists, and other specialists who work with children and teenagers. The public experience includes presentation pages, professional profiles, filtered search, articles, reviews, and events. Search can combine name or keywords with county, online or in-person availability, gender, age, specialization, area of intervention, education, credentials, and price range, while slug-based routes and URL-serialized filters support sharing and indexing of public pages.

For professionals, the product includes registration with a complete professional profile, email confirmation, administrative approval, subscriptions, profile management, education, training, professional codes, articles, and events. Sensitive profile changes can go through a separate request, approval, or rejection flow, with a reviewer and verification notes. Events are initially created as drafts, move to pending after payment is initiated, to paid after Netopia confirmation, and become public only after administrator approval; co-organizer invitations have their own invited, accepted, and declined states.

Monetization is implemented through subscription packages and Netopia payments. The backend keeps an internal payment order before the provider's confirmation, processes 3D Secure and webhooks, activates or renews subscriptions, manages the one-time free bonus, deactivates competing subscriptions, and sends email notifications. There is also a queueable renewal job with a saved token and protection via the renewal_in_progress flag, but the current repository does not schedule it automatically in Laravel Scheduler; running it depends on a manual command or an external configuration not demonstrated in the code.

The back office separates the user, agent, and admin roles. Agents and administrators can view and manage users, statistics, transactions, and change requests, while moderating reviews and articles, configuring packages, specializations, and conditions, and approving events remain reserved for the administrator. The frontend is built with Expo Router, React Native, and React Native Web, exported as a static PWA for web and also configured for iOS and Android. For SEO, the client app sets metadata and canonical URLs, while Laravel separately serves HTML pages for crawlers; the repository's documentation proposes a Next.js migration, but this is not yet implemented.

Key results

  • 3 confirmed operational roles: specialist, agent, and administrator, with differentiated access via middleware and dedicated routes
  • Structured professional profile with specializations, areas of intervention, education, training, workshops, professional codes, online or in-person services, and price per session
  • Paginated public search with filters for county, availability, gender, age, specialization, conditions, education, credentials, and price
  • Subscriptions with configurable packages, activation, cancellation, validity period, a one-time free bonus, and tracking of payment attempts
  • Netopia integration for initial payments, 3D Secure, tokenization, webhooks, and renewals triggerable via job or command
  • PaymentOrder registry for correlating orders, users, statuses, and payment confirmation data
  • Event flow with draft, pending, paid, and approved states, a publishing fee, and co-organizer invitations
  • Separate profile-change request flow, preventing duplicate pending requests, with reviewer, notes, and approval or rejection
  • Articles, reviews, testimonials, and public events with administrative moderation
  • Back office for users, subscriptions, transactions, statistics, content, specializations, and conditions
  • Expo frontend with public pages, an authenticated area, and an admin area, static web/PWA export, and configuration for iOS and Android
  • SEO via slugs, URL filters, Open Graph/Twitter metadata, canonical URLs, sitemap, and Laravel pages dedicated to crawlers

Related projects

Want something similar?

Start with the estimate wizard — answer a few questions and get a realistic price range and timeline.