first commit

This commit is contained in:
Isuru Bimsara
2026-08-14 22:46:02 +05:30
commit 81d0e65686
132 changed files with 24398 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app/config/bullBoard.config.js
const { createBullBoard } = require("@bull-board/api");
const { ExpressAdapter } = require("@bull-board/express");
const { BullMQAdapter } = require("@bull-board/api/bullMQAdapter");
const activityQueue = require("../queues/activity.queue");
const serverAdapter = new ExpressAdapter();
serverAdapter.setBasePath("/admin/queues");
const { addQueue, removeQueue, setQueues, replaceQueues } =
createBullBoard({
queues: [new BullMQAdapter(activityQueue)],
serverAdapter,
});
module.exports = {
bullBoardRouter: serverAdapter.getRouter(),
};
+28
View File
@@ -0,0 +1,28 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app/config/db.config.js
require("dotenv").config();
module.exports = {
HOST: process.env.DB_HOST || "localhost",
USER: process.env.DB_USER || "root",
PASSWORD: process.env.DB_PASSWORD || "",
DB: process.env.DB_NAME || "oceanic-db",
PORT: process.env.DB_PORT || 3306,
DIALECT: "mysql",
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
};
+24
View File
@@ -0,0 +1,24 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app/config/mail.config.js
require("dotenv").config();
module.exports = {
host: process.env.MAIL_HOST,
port: process.env.MAIL_PORT,
secure: process.env.MAIL_SECURE === "true", // true for 465, false for 587
auth: {
user: process.env.MAIL_USER,
pass: process.env.MAIL_PASS,
},
from: `Oceanic Maritime Solutions <${process.env.MAIL_FROM}>`,
};
+47
View File
@@ -0,0 +1,47 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app/config/redis.config.js
const { Redis } = require("ioredis");
const createRedisConnection = () => {
const redis = new Redis({
host: process.env.REDIS_HOST || "redis",
port: process.env.REDIS_PORT || 6379,
password: process.env.REDIS_PASSWORD,
maxRetriesPerRequest: null,
enableReadyCheck: false,
});
// Connection events
redis.on("connect", () => {
console.log("Redis connecting...");
});
redis.on("ready", () => {
console.log("Redis connected and ready!");
});
redis.on("error", (err) => {
console.error("Redis error:", err.message);
});
redis.on("close", () => {
console.warn("Redis connection closed");
});
redis.on("reconnecting", () => {
console.log("Redis reconnecting...");
});
return redis;
};
module.exports = createRedisConnection;
+17
View File
@@ -0,0 +1,17 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app/config/redisClient.js
const createRedisConnection = require("./redis.config");
const redis = createRedisConnection();
module.exports = redis;
+22
View File
@@ -0,0 +1,22 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app/config/s3.config.js
const { S3Client } = require("@aws-sdk/client-s3");
const s3 = new S3Client({
region: process.env.AWS_REGION,
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
},
});
module.exports = s3;