Skip to content

About

Multi-tenant B2B corporate training and video streaming SaaS architecture with GCS and Cloud SQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

🇺🇸 English · 🇨🇱 Español


🇺🇸 b2b-elearning-platform

Full-stack B2B corporate training platform with video streaming via Google Cloud Storage. Multi-role system (platform owner, company admin, employee), multi-tenant architecture, quiz engine, and deadline tracking — built entirely on the Google Cloud ecosystem.

Roles

Role Capabilities
super_admin Creates courses, manages organizations, assigns content to companies, sees all analytics
company_admin HR role — assigns courses to employees, tracks completion, sets deadlines
student Takes courses, completes quizzes, takes final exams

Architecture

┌──────────────────────────────────────────────────────────┐
│                    Next.js 16 (App Router)               │
│              TypeScript · Tailwind · shadcn/ui           │
└─────────────────────────┬────────────────────────────────┘
                          │
         ┌────────────────┼────────────────┐
         │                │                │
┌────────▼──────┐ ┌───────▼──────┐ ┌──────▼────────┐
│Firebase Auth  │ │  Cloud SQL   │ │   GCS Videos  │
│(email/session │ │  (Postgres + │ │(signed URLs,  │
│  cookies)     │ │ Drizzle ORM) │ │   1h TTL)     │
└───────────────┘ └──────────────┘ └───────────────┘
                          │
                  ┌───────▼──────┐
                  │Cloud Scheduler│
                  │(deadline      │
                  │ reminders)    │
                  └──────────────┘

Key Features

  • Video streaming: Videos stored in GCS with signed URLs (1-hour TTL) — no direct public access to storage
  • Multi-tenant: Strict company isolation — HR admin of company A can never see company B's data
  • B2B onboarding: Employees self-register using a company code (signup_code) — no manual admin import needed
  • Quiz engine: Per-module quizzes + final exam with configurable pass threshold
  • Deadline system: Cloud Scheduler sends automatic reminder emails for approaching deadlines
  • Local development: Full Docker environment — Postgres, fake-gcs, Firebase Auth Emulator, MailHog — no GCP account needed to develop

Local Development (No GCP Account Needed)

cp .env.local.example .env.local
pnpm install
pnpm dev:setup     # starts docker + db:push + db:seed
pnpm dev           # starts Next.js

# Services running locally:
# Postgres          :5433
# Fake GCS          :4443
# Firebase Emulator :9099  (UI: localhost:4000)
# MailHog (SMTP)    :1025  (UI: localhost:8025)

Demo Users (password: Password1!)

Role Email
super_admin super@demo.local
company_admin rrhh@company-a.test
student student@company-a.test

Company signup codes: COMPANY-A-2026, COMPANY-B-2026

Stack

Next.js 16 · TypeScript · Tailwind · shadcn/ui · Firebase Authentication · Cloud SQL (Postgres) · Drizzle ORM · Google Cloud Storage · Cloud Scheduler · Docker · Firebase App Hosting


🇨🇱 b2b-elearning-platform

Plataforma de capacitación corporativa B2B full-stack con streaming de video vía Google Cloud Storage. Sistema multi-rol (dueño de plataforma, admin de empresa, empleado), arquitectura multi-tenant, motor de quizzes y seguimiento de plazos — construida íntegramente en el ecosistema de Google Cloud.

Roles

Rol Capacidades
super_admin Crea cursos, gestiona organizaciones, asigna contenido a empresas, ve toda la analítica
company_admin Rol RRHH — asigna cursos a empleados, hace seguimiento de completitud, fija plazos
student Toma cursos, completa quizzes, rinde exámenes finales

Arquitectura

┌──────────────────────────────────────────────────────────┐
│                Next.js 16 (App Router)                  │
│           TypeScript · Tailwind · shadcn/ui             │
└─────────────────────────┬────────────────────────────────┘
                          │
         ┌────────────────┼────────────────┐
         │                │                │
┌────────▼──────┐ ┌───────▼──────┐ ┌──────▼────────┐
│Firebase Auth  │ │  Cloud SQL   │ │  Videos GCS   │
│(email/session │ │ (Postgres +  │ │(URLs firmadas,│
│   cookies)    │ │ Drizzle ORM) │ │  TTL 1h)      │
└───────────────┘ └──────────────┘ └───────────────┘
                          │
                  ┌───────▼──────┐
                  │Cloud Scheduler│
                  │(recordatorios │
                  │  de plazos)   │
                  └──────────────┘

Características Principales

  • Streaming de video: Videos en GCS con URLs firmadas (TTL 1 hora) — sin acceso público directo al storage
  • Multi-tenant: Aislamiento estricto por empresa — el admin de la empresa A nunca puede ver los datos de la empresa B
  • Onboarding B2B: Los empleados se auto-registran con un código de empresa (signup_code) — sin importación manual de admins
  • Motor de quizzes: Quizzes por módulo + examen final con umbral de aprobación configurable
  • Sistema de plazos: Cloud Scheduler envía emails de recordatorio automáticos para plazos próximos
  • Desarrollo local: Entorno Docker completo — Postgres, fake-gcs, Firebase Auth Emulator, MailHog — sin necesidad de cuenta GCP para desarrollar

Desarrollo Local (Sin Cuenta GCP)

cp .env.local.example .env.local
pnpm install
pnpm dev:setup     # levanta docker + db:push + db:seed
pnpm dev           # inicia Next.js

# Servicios corriendo localmente:
# Postgres          :5433
# Fake GCS          :4443
# Firebase Emulator :9099  (UI: localhost:4000)
# MailHog (SMTP)    :1025  (UI: localhost:8025)

Usuarios Demo (contraseña: Password1!)

Rol Email
super_admin super@demo.local
company_admin rrhh@empresa-a.test
student estudiante@empresa-a.test

Códigos de empresa para registro: EMPRESA-A-2026, EMPRESA-B-2026

Stack

Next.js 16 · TypeScript · Tailwind · shadcn/ui · Firebase Authentication · Cloud SQL (Postgres) · Drizzle ORM · Google Cloud Storage · Cloud Scheduler · Docker · Firebase App Hosting

About

Multi-tenant B2B corporate training and video streaming SaaS architecture with GCS and Cloud SQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors