JoinUs SQL & Social Platform

A full-stack application combining SQL exploration, relational database design, and a connected social experience.

JoinUs is a self-hosted full-stack platform built with Node.js, Express, EJS, and MariaDB. The main app includes multiple sections such as JoinUs, Detective Lab, and SQL Explorer. It also connects to a simple social feed through a shared user system.

The platform is hosted on a Synology NAS and securely exposed to the internet using Cloudflare Tunnel. This allows public HTTPS access without opening inbound router ports.

Project Overview

Main application areas:

  • JoinUs — the main user-facing experience and entry point into the platform.
  • Detective Lab — a relational database demo built around the detective_agency schema.
  • SQL Explorer — a section for exploring curated SQL queries and relational datasets.
  • IG Social Feed — a connected social feature using the ig_clone database and shared users.

Tech Stack

Node.js, Express, EJS, MariaDB, PM2, Cloudflare Tunnel, Synology NAS

Key Features

Relational SQL Exploration

Built SQL examples and app sections that highlight joins, relationships, and real-world database structure in a way that is easy to explore visually.

Shared User System

Users created through the main JoinUs workflow can also be used in the connected social feed experience.

Self-Hosted Deployment

The platform runs on a Synology NAS using PM2 for process management instead of relying entirely on managed hosting platforms.

Secure Public Access

Public access is handled through Cloudflare Tunnel, allowing secure HTTPS access without exposing database or application ports directly to the internet.

Database Schema

Schema diagrams for the two databases used in the platform.

Deployment & Security

  • Hosted on a self-managed Synology NAS.
  • MariaDB runs internally and is not exposed to the public internet.
  • PM2 keeps the applications and Cloudflare tunnel running persistently.
  • Cloudflare Tunnel provides secure HTTPS access without opening inbound router ports.
  • The main portfolio remains on GitLab Pages while the app runs on self-hosted infrastructure.

What I Learned

  • Designing and documenting relational schemas in a more visual and portfolio-friendly way.
  • Structuring Express apps into connected but distinct experiences.
  • Managing deployment on self-hosted infrastructure instead of relying only on managed platforms.
  • Using Cloudflare Tunnel for secure public access without exposing internal services directly.