SovereignTerminal

Type
Product
Built with
Python
Source
Private repository
Live at
sovereignterminal.com
sovereignterminal.com
SovereignTerminal screenshot

Overview

A regulatory-grade deal management platform for equity placements on London's AIM market, replacing the spreadsheets and email chains brokers use to run fundraises.

Core features

Deal and placement management with an investor pipeline that advances through regulated stages (Sounded → Wall-crossed → Committed → Allocated); a drag-and-drop template builder and shared template library for deal documents and reports; investor and contact relationship management; RNS regulatory news ingestion; portfolio tracking; document distribution with recipient-level acceptance capture; email campaigns; in-app chat, calendar and notifications; Stripe billing.

Architecture

FastAPI + SQLAlchemy over PostgreSQL, with domain logic isolated in dedicated engines — pipeline (stage transitions), compliance (restriction rules) and checkpoint (investor sounding workflow) — kept separate from the HTTP routing layer. Async work (checkpoint emails, RNS polling, campaigns, notifications) runs on Taskiq workers with Redis and scheduled crons. The Next.js App Router frontend is split by audience into a company portal and a platform admin area.

Multi-tenancy is enforced by chained middleware resolving device, user and company context per request, with two independent role systems: platform roles (superadmin/admin/support) and per-company roles (superadmin/admin/editor/viewer). Auth uses RS256 access tokens with database-backed rotating refresh tokens and email-link 2FA that completes across devices. Every state change is written to an immutable audit log.

Frameworks, tools & libraries

The stack behind it

Frameworks

  • FastAPI
  • Next.js (App Router)
  • React
  • Tailwind CSS

Tools & infrastructure

  • PostgreSQL
  • Redis
  • Taskiq
  • Stripe
  • S3-compatible storage
  • Docker

Libraries

  • SQLAlchemy
  • Alembic
  • AlphaChart
  • SynTextEditor
  • ECharts
  • FullCalendar
  • Univer
  • Zustand
  • Framer Motion
  • pdf.js

Built on libraries I maintain

Libraries of mine that this project runs on.

Skills applied

What I brought to it

  1. 01

    Multi-tenant SaaS architecture with company-level data isolation

  2. 02

    Two-tier RBAC (platform roles + per-company roles) and middleware-based authorization

  3. 03

    Advanced auth: RS256 JWT access tokens, DB-backed rotating refresh tokens with replay grace windows, email-link 2FA with cross-device polling

  4. 04

    Financial/capital-markets domain modelling (placements, wall-crossing, allocations)

  5. 05

    Regulatory compliance and immutable audit logging

  6. 06

    Async Python API design, background job orchestration, Redis caching

  7. 07

    Database migrations (Alembic), payment integration (Stripe)

  8. 08

    Market data ingestion and web scraping

Languages

What it's written in

  • Python~294 files

    FastAPI backend

  • TypeScript / TSX~466 files

    Next.js frontend

  • SQL

    schema and migrations

  • CSS

    styling

Screens

More screens

Next project

Synlor