Sama Keponakan Rapidshare | Video Tante Ngentot

| Sprint | Deliverables | |--------|--------------| | Sprint 0 – Foundations | • Set up Git repo, CI/CD pipelines.
• Provision Kubernetes cluster (dev).
• Deploy Auth Service and API Gateway. | | Sprint 1 – Core Video Service | • Ingest API + FFmpeg pipeline.
• HLS/DASH streaming with CloudFront.
• Basic episode list UI. | | Sprint 2 – RapidShare‑Like Download | • Object‑store bucket, signed‑URL generator.
• Download endpoint + UI modal. | | Sprint 3 – Social Layer | • Likes, comments, sharing integrations (WhatsApp, Instagram). | | Sprint 4 – Recommendation & Playlists | • Simple tag‑based engine + personal playlists UI. | | Sprint 5 – Premium Tier & Monetisation | • Stripe integration, tier gating, ad‑injection placeholder. | | Sprint 6 – Analytics & Dashboard | • ClickHouse pipeline, Metabase dashboards for internal & sponsors

openapi: 3.0.3
info:
  title: Tante Sama Keponakan Video Hub API
  version: 1.0.0
servers:
  - url: https://api.tantesama.id/v1
paths:
  /episodes:
    get:
      summary: List published episodes
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - name: tag
          in: query
          schema:  type: string 
      responses:
        '200':
          description: Paginated list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EpisodeList'
/episodes/id:
    get:
      summary: Episode detail (metadata + streaming URLs)
      parameters:
        - name: id
          in: path
          required: true
          schema:  type: string 
      responses:
        '200':
          description: Episode object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Episode'
/episodes/id/download:
    post:
      summary: Generate time‑limited download link
      security: [ bearerAuth: [] ]
      parameters:
        - name: id
          in: path
          required: true
          schema:  type: string 
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quality:
                  type: string
                  enum: [1080p,720p,4K]
                  default: 1080p
      responses:
        '200':
          description: Signed URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    format: uri
                  expiresAt:
                    type: string
                    format: date-time

Notes


┌───────────────────────┐
│   Front‑End (Web/Mobile)│
│  - React (Next.js)      │
│  - React‑Native (iOS/Android)│
└───────┬───────────────┘
        │  API (REST/GraphQL)
        ▼
┌───────────────────────┐        ┌─────────────────────┐
│   API Gateway (Kong)  │◄──────►│   Auth Service (Keycloak)│
└───────┬───────────────┘        └─────────────────────┘
        │
        ▼
┌───────────────────────┐
│   Video Service (Go)   │  ←─►  FFmpeg pipeline (transcode to HLS/DASH)
│   - Metadata DB (PostgreSQL)
│   - Streaming CDN (CloudFront)
└───────┬───────────────┘
        │
        ▼
┌───────────────────────┐
│   RapidShare‑Like      │
│   Download Service (Go)│
│   - Object Store (S3‑compatible) │
│   - Signed‑URL Generator           │
└───────┬───────────────┘
        │
        ▼
┌───────────────────────┐
│   Analytics & Events  │
│   - Kafka → ClickHouse│
│   - Dashboard (Metabase)│
└───────────────────────┘

All services are containerised (Docker) and orchestrated via Kubernetes with auto‑scaling. Video Tante Ngentot Sama Keponakan Rapidshare