Date: January 22, 2026 Version: 1.0
This document outlines the changes made to integrate new and updated NITECH (InterfaceX) endpoints into the Cardinalstone Registrars backend system.
| <?php | |
| use CardinalstoneRestServer\services\JWTToken; | |
| use Respect\Validation\Validator as V; | |
| use Psr\Container\ContainerInterface; | |
| use function GuzzleHttp\json_decode; | |
| use CardinalstoneRestServer\models\MutualFundModel as mutualFundModel; | |
| use CardinalstoneRestServer\models\CustomerModel as customerModel; | |
| $app->post('/api/authenticate', function ($request, $response) { | |
| $payload = $request->getParsedBody(); |
| Tech Spec: Notification System for 1M+ Users | |
| Author: Samson Adejoro | |
| Date: May 2026 | |
| 1. Problem Statement | |
| We need a notification system that can reliably deliver push, SMS, and email notifications to 1M+ users. The system must guarantee: | |
| No duplicate sends for the same event | |
| No missed sends even under provider outages | |
| Graceful degradation when one or more providers are unavailable |
| import { | |
| WebSocketGateway, | |
| WebSocketServer, | |
| OnGatewayConnection, | |
| OnGatewayDisconnect, | |
| } from '@nestjs/websockets'; | |
| import { Server, Socket } from 'socket.io'; | |
| import * as WebSocket from 'ws'; | |
| import { Injectable, Logger } from '@nestjs/common'; | |
| import { ConfigService } from '@nestjs/config'; |
| <!-- / Full width container --> | |
| <!DOCTYPE html> | |
| <?php | |
| use Carbon\Carbon; | |
| use CardinalstoneRestServer\services\mail\Mailer; | |
| ?> | |
| <htmL> | |
| <head> | |
| </head> | |
| <body> |
| <!-- / Full width container --> | |
| <!DOCTYPE html> | |
| <?php | |
| use Carbon\Carbon; | |
| use CardinalstoneRestServer\services\mail\Mailer; | |
| ?> | |
| <htmL> | |
| <head> | |
| </head> | |
| <body> |
| <!-- / Full width container --> | |
| <!DOCTYPE html> | |
| <?php | |
| use Carbon\Carbon; | |
| use CardinalstoneRestServer\services\mail\Mailer; | |
| ?> | |
| <htmL> | |
| <head> | |
| </head> | |
| <body> |
| <?php | |
| namespace CardinalstoneRestServer\services; | |
| use CardinalstoneRestServer\models\WebServiceModel; | |
| use function GuzzleHttp\json_decode; | |
| /* | |
| * This Class handles the API calls to paystack | |
| * @author devteam@cardinalstone.com |
| <?php | |
| namespace CardinalstoneRestServer\models; | |
| use CardinalstoneRestServer\models\Model; | |
| use CardinalstoneRestServer\models\MutualFundModel as mutualFundModel; | |
| use CardinalstoneRestServer\models\ForeignEquityModel; | |
| use CardinalstoneRestServer\services\JWTToken; | |
| use CardinalstoneRestServer\services\mail\Mailer; | |
| use CardinalstoneRestServer\middleware\Uploader; |
| <htmL> | |
| <head> | |
| </head> | |
| <body> | |
| <table class="full-width-container" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" bgcolor="#eeeeee" style="width: 100%; height: 100%; padding: 30px 0 30px 0; font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif"> | |
| <tr> | |
| <td align="center" valign="top"> | |
| <!-- / 700px container --> | |
| <table class="container" border="0" cellpadding="0" cellspacing="0" width="720" bgcolor="#ffffff" style="width: 720px;"> | |
| <tr> |