From 22f43de19bba56cdea6f59aede405427a84cf81e Mon Sep 17 00:00:00 2001 From: ZeeZinnie Date: Wed, 1 Apr 2026 20:32:26 +0100 Subject: [PATCH 1/6] Configured render migrtions script --- package.json | 8 +++++--- src/common/utils/datasource.util.ts | 22 +++++++++++----------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index baeb008..60a570a 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,13 @@ "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", - "typeorm": "node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/dataSource.util.js", - "typeorm:dev": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --dataSource src/common/utils/dataSource.util.ts", + "typeorm": "node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js", + "typeorm:dev": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --dataSource src/common/utils/datasource.util.ts", "migration:generate": "npm run typeorm:dev migration:generate --", - "migration:run": "npm run typeorm migration:run", + "migration:run": "npm run build && cross-env NODE_ENV=production node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:run", "migration:run:dev": "npm run typeorm:dev migration:run", + "migration:revert": "npm run build && cross-env NODE_ENV=production node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:revert", + "migration:revert:dev": "npm run typeorm:dev migration:revert", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", diff --git a/src/common/utils/datasource.util.ts b/src/common/utils/datasource.util.ts index 11fe245..feec028 100644 --- a/src/common/utils/datasource.util.ts +++ b/src/common/utils/datasource.util.ts @@ -5,17 +5,17 @@ import { DataSource } from 'typeorm'; import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions'; import path from 'path'; -export const getDefaultDataSource = () => { - dotenv.config(); +dotenv.config(); - const databaseConfig = getConfig(); +const databaseConfig = getConfig(); - return new DataSource({ - ...databaseConfig, - entities: ['src/**/*.entity.ts'], - migrations: ['src/migrations/*.ts'], - namingStrategy: new SnakeCaseNamingStrategy(), - } as PostgresConnectionOptions); -}; +const isProd = process.env.NODE_ENV === 'production'; -export default getDefaultDataSource(); +export const AppDataSource = new DataSource({ + ...databaseConfig, + entities: isProd ? ['dist/**/*.entity.js'] : ['src/**/*.entity.ts'], + migrations: isProd ? ['dist/migrations/*.js'] : ['src/migrations/*.ts'], + namingStrategy: new SnakeCaseNamingStrategy(), +} as PostgresConnectionOptions); + +export default AppDataSource; From f3b47e1396171cd13604c1e49fa6f1c3424dc4cc Mon Sep 17 00:00:00 2001 From: ZeeZinnie Date: Wed, 1 Apr 2026 20:47:56 +0100 Subject: [PATCH 2/6] Configured render migrtions script --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 60a570a..518966f 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,9 @@ "typeorm": "node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js", "typeorm:dev": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --dataSource src/common/utils/datasource.util.ts", "migration:generate": "npm run typeorm:dev migration:generate --", - "migration:run": "npm run build && cross-env NODE_ENV=production node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:run", + "migration:run": "npm run build && node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:run", "migration:run:dev": "npm run typeorm:dev migration:run", - "migration:revert": "npm run build && cross-env NODE_ENV=production node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:revert", + "migration:revert": "npm run build && node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:revert", "migration:revert:dev": "npm run typeorm:dev migration:revert", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", From d522822a4e2fad60ba5b11699ae1fa820a41f6cc Mon Sep 17 00:00:00 2001 From: ZeeZinnie Date: Wed, 1 Apr 2026 21:30:26 +0100 Subject: [PATCH 3/6] Configured render migrtions script --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 518966f..31637e9 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "typeorm": "node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js", - "typeorm:dev": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --dataSource src/common/utils/datasource.util.ts", "migration:generate": "npm run typeorm:dev migration:generate --", - "migration:run": "npm run build && node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:run", + "migration:run": "npm run typeorm migration:run", + "migration:revert": "npm run typeorm migration:revert", + "typeorm:dev": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --dataSource src/common/utils/datasource.util.ts", "migration:run:dev": "npm run typeorm:dev migration:run", - "migration:revert": "npm run build && node ./node_modules/typeorm/cli.js --dataSource ./dist/common/utils/datasource.util.js migration:revert", "migration:revert:dev": "npm run typeorm:dev migration:revert", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", From 1a4e7c74fd10300d30c86b9eb6b7732f6531e8a5 Mon Sep 17 00:00:00 2001 From: ZeeZinnie Date: Wed, 1 Apr 2026 21:48:09 +0100 Subject: [PATCH 4/6] Moified datasource to suite render configs --- src/common/utils/datasource.util.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/common/utils/datasource.util.ts b/src/common/utils/datasource.util.ts index feec028..6f16df9 100644 --- a/src/common/utils/datasource.util.ts +++ b/src/common/utils/datasource.util.ts @@ -3,19 +3,19 @@ import { SnakeCaseNamingStrategy } from 'src/common/utils/snake-case-naming-stra import * as dotenv from 'dotenv'; import { DataSource } from 'typeorm'; import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions'; -import path from 'path'; dotenv.config(); -const databaseConfig = getConfig(); +export const getDefaultDataSource = () => { + dotenv.config(); -const isProd = process.env.NODE_ENV === 'production'; + const databaseConfig = getConfig(); + const isProd = process.env.NODE_ENV === 'production'; -export const AppDataSource = new DataSource({ - ...databaseConfig, - entities: isProd ? ['dist/**/*.entity.js'] : ['src/**/*.entity.ts'], - migrations: isProd ? ['dist/migrations/*.js'] : ['src/migrations/*.ts'], - namingStrategy: new SnakeCaseNamingStrategy(), -} as PostgresConnectionOptions); - -export default AppDataSource; + return new DataSource({ + ...databaseConfig, + entities: isProd ? ['dist/**/*.entity.js'] : ['src/**/*.entity.ts'], + migrations: isProd ? ['dist/migrations/*.js'] : ['src/migrations/*.ts'], + namingStrategy: new SnakeCaseNamingStrategy(), + } as PostgresConnectionOptions); +}; From 9dc87f7aa09cdcb87e73679949455f9ef6ef33f9 Mon Sep 17 00:00:00 2001 From: ZeeZinnie Date: Thu, 2 Apr 2026 09:02:04 +0100 Subject: [PATCH 5/6] Configured render migrations script --- src/common/utils/datasource.util.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/utils/datasource.util.ts b/src/common/utils/datasource.util.ts index 6f16df9..67e10df 100644 --- a/src/common/utils/datasource.util.ts +++ b/src/common/utils/datasource.util.ts @@ -19,3 +19,5 @@ export const getDefaultDataSource = () => { namingStrategy: new SnakeCaseNamingStrategy(), } as PostgresConnectionOptions); }; + +export default getDefaultDataSource(); From 7d1568aed7ff7f37fb3c08a6d750e643ceee3b1a Mon Sep 17 00:00:00 2001 From: ZeeZinnie Date: Thu, 2 Apr 2026 09:43:44 +0100 Subject: [PATCH 6/6] Update on readme.md --- README.md | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 0d1de20..81339fb 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ Messaging - https://www.postman.com/kairosclicks/workspace/ko/collection/69cbc76 The above are sperated into various collections because the former is HTTP where as the latter is WS and cannot not be in the same collection - Swagger Open API: https://collaborative-v1.onrender.com/api-documentation +- See Test section for test users. ## Features - Authentication: @@ -73,26 +74,37 @@ The above are sperated into various collections because the former is HTTP where - To migrate run: ```bash - npm run migration:run + npm run migration:run:dev - To revert run: ```bash - npm run migration:revert + npm run migration:revert:dev -## Testing - To run test: +### Testing + -To run test: ```bash - npm run migration:revert + npm run test + ``` + + - Test users: + 1. email: "johnydoe@mailsac.com" ; Password: "Password123#" + 2. email: "lukadoe@mailsac.com" ; Password: "Password123#" + +### Guidlines + - Entity Class property names should be camel-cased and it is automatically converted to snake-cased column name. Hence, hence column names should not be manually set to avoid naming errors. -## Improvements with more time -- Logging +### Improvements with more time +- Voice to text +- Voice message (Voice Notes) +- Full implementation for "last seen" +- Better logging - Authentication Refresh - Message threads. (A bit similar to the replyTo feature but more like a tree) - Message translation - Caching messages for to tune perfomance - Chatroom invite link - Chatroom roles -- As admin Remove user from chat room +- Admin of a channel Remove user from chat room - Email service - More Unit tests