From 9a6f58466a695ae2f865d57dee6a25eaaed587fa Mon Sep 17 00:00:00 2001 From: Kmadhav824 Date: Sun, 26 Apr 2026 23:40:30 +0530 Subject: [PATCH 1/4] Added yaml for starting up tools for local development --- ...a5f529d3b84500f8c29e94ef13aaf30-audit.json | 35 - backend/logs/combined/combined-2026-04-20.log | 122 -- backend/logs/combined/combined-2026-04-21.log | 1861 ----------------- backend/logs/error/error-2026-03-31.log | 8 - backend/logs/error/error-2026-04-20.log | 1 - backend/logs/error/error-2026-04-21.log | 5 - docker-compose.yaml | 44 + ...6d6cf164f60c30ab92bc91339f28bcb-audit.json | 30 - workers/logs/combined/combined-2026-04-22.log | 17 - workers/logs/combined/combined-2026-04-23.log | 8 - workers/logs/combined/combined-2026-04-24.log | 2 - workers/logs/combined/combined-2026-04-25.log | 1 - workers/logs/error/error-2026-04-22.log | 0 workers/logs/error/error-2026-04-23.log | 1 - workers/logs/error/error-2026-04-24.log | 0 workers/logs/error/error-2026-04-25.log | 0 16 files changed, 44 insertions(+), 2091 deletions(-) delete mode 100644 backend/logs/combined/.0249dc91aa5f529d3b84500f8c29e94ef13aaf30-audit.json delete mode 100644 backend/logs/combined/combined-2026-04-20.log delete mode 100644 backend/logs/combined/combined-2026-04-21.log delete mode 100644 backend/logs/error/error-2026-03-31.log delete mode 100644 backend/logs/error/error-2026-04-20.log delete mode 100644 backend/logs/error/error-2026-04-21.log create mode 100644 docker-compose.yaml delete mode 100644 workers/logs/combined/.a38ab147e6d6cf164f60c30ab92bc91339f28bcb-audit.json delete mode 100644 workers/logs/combined/combined-2026-04-22.log delete mode 100644 workers/logs/combined/combined-2026-04-23.log delete mode 100644 workers/logs/combined/combined-2026-04-24.log delete mode 100644 workers/logs/combined/combined-2026-04-25.log delete mode 100644 workers/logs/error/error-2026-04-22.log delete mode 100644 workers/logs/error/error-2026-04-23.log delete mode 100644 workers/logs/error/error-2026-04-24.log delete mode 100644 workers/logs/error/error-2026-04-25.log diff --git a/backend/logs/combined/.0249dc91aa5f529d3b84500f8c29e94ef13aaf30-audit.json b/backend/logs/combined/.0249dc91aa5f529d3b84500f8c29e94ef13aaf30-audit.json deleted file mode 100644 index a49da64..0000000 --- a/backend/logs/combined/.0249dc91aa5f529d3b84500f8c29e94ef13aaf30-audit.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "keep": { - "days": true, - "amount": 14 - }, - "auditLog": "logs/combined/.0249dc91aa5f529d3b84500f8c29e94ef13aaf30-audit.json", - "files": [ - { - "date": 1776653116573, - "name": "logs/combined/combined-2026-04-20.log", - "hash": "6b874fa66dbd71c2f85d0b1224a6c6a777e32b6814ecf902e6eb2d4979aceed7" - }, - { - "date": 1776736383220, - "name": "logs/combined/combined-2026-04-21.log", - "hash": "e590a30ba25fff2687443de882b9f45f34fcabee6f68ca07c071e25538500a12" - }, - { - "date": 1776822615922, - "name": "logs/combined/combined-2026-04-22.log", - "hash": "cf08bf7fb4159c5477d558b90923ffa10dc27075d925dd7ce0c77e43e237e9fe" - }, - { - "date": 1776954694416, - "name": "logs/combined/combined-2026-04-23.log", - "hash": "6e8062f1c3f435cfdc13449b97e0681564a2024d06c4c9f1549d0b01839e46aa" - }, - { - "date": 1777121384746, - "name": "logs/combined/combined-2026-04-25.log", - "hash": "055a35b654a187b31dcfa6d6f557db3d41bd4f70175d39a4d4b562ea3913b67b" - } - ], - "hashType": "sha256" -} \ No newline at end of file diff --git a/backend/logs/combined/combined-2026-04-20.log b/backend/logs/combined/combined-2026-04-20.log deleted file mode 100644 index 379c999..0000000 --- a/backend/logs/combined/combined-2026-04-20.log +++ /dev/null @@ -1,122 +0,0 @@ -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:15:16"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:15:16"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:15:16"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:15:16"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:15:16"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:15:58"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:15:58"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:15:58"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:15:58"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:15:58"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:16:00"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:16:00"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:16:00"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:16:00"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:16:00"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:17:07"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:17:07"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:17:07"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:17:07"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:17:07"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:17:07"} -{"level":"info","message":"Email sent to shivam0xverma@gmail.com: <634156bc-d65b-c119-bd58-2d75cfc67dc9@gmail.com>","timestamp":"2026-04-20 08:19:19"} -{"0":"e","1":"y","10":"J","100":"i","101":"L","102":"C","103":"J","104":"s","105":"Y","106":"X","107":"N","108":"0","109":"T","11":"I","110":"G","111":"9","112":"n","113":"a","114":"W","115":"4","116":"i","117":"O","118":"i","119":"I","12":"U","120":"y","121":"M","122":"D","123":"I","124":"2","125":"L","126":"T","127":"A","128":"0","129":"L","13":"z","130":"T","131":"I","132":"w","133":"V","134":"D","135":"A","136":"y","137":"O","138":"j","139":"Q","14":"I","140":"5","141":"O","142":"j","143":"E","144":"1","145":"L","146":"j","147":"A","148":"x","149":"O","15":"1","150":"V","151":"o","152":"i","153":"L","154":"C","155":"J","156":"p","157":"Y","158":"X","159":"Q","16":"N","160":"i","161":"O","162":"j","163":"E","164":"3","165":"N","166":"z","167":"Y","168":"2","169":"N","17":"i","170":"T","171":"M","172":"z","173":"N","174":"T","175":"U","176":"s","177":"I","178":"m","179":"V","18":"I","180":"4","181":"c","182":"C","183":"I","184":"6","185":"M","186":"T","187":"g","188":"w","189":"O","19":"s","190":"D","191":"I","192":"x","193":"M","194":"D","195":"k","196":"1","197":"N","198":"X","199":"0","2":"J","20":"I","200":".","201":"o","202":"a","203":"U","204":"2","205":"m","206":"T","207":"e","208":"w","209":"p","21":"n","210":"5","211":"n","212":"h","213":"B","214":"C","215":"7","216":"M","217":"P","218":"t","219":"x","22":"R","220":"x","221":"I","222":"t","223":"S","224":"5","225":"I","226":"l","227":"q","228":"b","229":"O","23":"5","230":"b","231":"Y","232":"k","233":"4","234":"d","235":"8","236":"p","237":"_","238":"r","239":"U","24":"c","240":"P","241":"B","242":"1","243":"A","25":"C","26":"I","27":"6","28":"I","29":"k","3":"h","30":"p","31":"X","32":"V","33":"C","34":"J","35":"9","36":".","37":"e","38":"y","39":"J","4":"b","40":"1","41":"c","42":"2","43":"V","44":"y","45":"S","46":"W","47":"Q","48":"i","49":"O","5":"G","50":"i","51":"J","52":"h","53":"N","54":"z","55":"I","56":"0","57":"Z","58":"m","59":"V","6":"c","60":"i","61":"O","62":"S","63":"0","64":"5","65":"O","66":"T","67":"F","68":"i","69":"L","7":"i","70":"T","71":"Q","72":"z","73":"Z","74":"j","75":"c","76":"t","77":"Y","78":"m","79":"Z","8":"O","80":"j","81":"Y","82":"i","83":"1","84":"k","85":"Y","86":"z","87":"c","88":"4","89":"Y","9":"i","90":"z","91":"B","92":"i","93":"N","94":"z","95":"g","96":"5","97":"M","98":"T","99":"Q","level":"info","message":"User logged in:","timestamp":"2026-04-20 08:19:19"} -{"0":"e","1":"y","10":"J","100":"i","101":"L","102":"C","103":"J","104":"s","105":"Y","106":"X","107":"N","108":"0","109":"T","11":"I","110":"G","111":"9","112":"n","113":"a","114":"W","115":"4","116":"i","117":"O","118":"i","119":"I","12":"U","120":"y","121":"M","122":"D","123":"I","124":"2","125":"L","126":"T","127":"A","128":"0","129":"L","13":"z","130":"T","131":"I","132":"w","133":"V","134":"D","135":"A","136":"y","137":"O","138":"j","139":"U","14":"I","140":"x","141":"O","142":"j","143":"A","144":"2","145":"L","146":"j","147":"U","148":"1","149":"N","15":"1","150":"V","151":"o","152":"i","153":"L","154":"C","155":"J","156":"p","157":"Y","158":"X","159":"Q","16":"N","160":"i","161":"O","162":"j","163":"E","164":"3","165":"N","166":"z","167":"Y","168":"2","169":"N","17":"i","170":"T","171":"M","172":"0","173":"N","174":"j","175":"Y","176":"s","177":"I","178":"m","179":"V","18":"I","180":"4","181":"c","182":"C","183":"I","184":"6","185":"M","186":"T","187":"g","188":"w","189":"O","19":"s","190":"D","191":"I","192":"x","193":"M","194":"T","195":"A","196":"2","197":"N","198":"n","199":"0","2":"J","20":"I","200":".","201":"i","202":"w","203":"B","204":"M","205":"v","206":"B","207":"k","208":"p","209":"n","21":"n","210":"S","211":"U","212":"T","213":"m","214":"e","215":"Y","216":"-","217":"k","218":"S","219":"U","22":"R","220":"p","221":"h","222":"n","223":"S","224":"B","225":"T","226":"Y","227":"y","228":"W","229":"z","23":"5","230":"k","231":"7","232":"Z","233":"K","234":"5","235":"e","236":"C","237":"R","238":"W","239":"7","24":"c","240":"7","241":"O","242":"A","243":"I","25":"C","26":"I","27":"6","28":"I","29":"k","3":"h","30":"p","31":"X","32":"V","33":"C","34":"J","35":"9","36":".","37":"e","38":"y","39":"J","4":"b","40":"1","41":"c","42":"2","43":"V","44":"y","45":"S","46":"W","47":"Q","48":"i","49":"O","5":"G","50":"i","51":"J","52":"h","53":"N","54":"z","55":"I","56":"0","57":"Z","58":"m","59":"V","6":"c","60":"i","61":"O","62":"S","63":"0","64":"5","65":"O","66":"T","67":"F","68":"i","69":"L","7":"i","70":"T","71":"Q","72":"z","73":"Z","74":"j","75":"c","76":"t","77":"Y","78":"m","79":"Z","8":"O","80":"j","81":"Y","82":"i","83":"1","84":"k","85":"Y","86":"z","87":"c","88":"4","89":"Y","9":"i","90":"z","91":"B","92":"i","93":"N","94":"z","95":"g","96":"5","97":"M","98":"T","99":"Q","level":"info","message":"User logged in:","timestamp":"2026-04-20 08:21:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:29:40"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:29:40"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:29:40"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:29:40"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:29:40"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:29:40"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:30:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:30:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:30:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:30:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:30:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:30:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:30:17"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:30:17"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:30:17"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:30:17"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:30:17"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:30:17"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:31:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:31:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:31:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:31:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:31:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:31:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:48:52"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:48:52"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:48:52"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:48:52"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:48:52"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:48:52"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:48:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:48:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:48:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:48:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:48:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:48:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:48:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:48:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:48:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:48:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:48:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:48:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:49:02"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:49:02"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:49:02"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:49:02"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:49:02"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:49:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:49:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:49:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:49:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:49:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:49:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:49:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 08:49:07"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 08:49:07"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 08:49:07"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 08:49:07"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 08:49:07"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 08:49:07"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 17:42:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 17:42:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 17:42:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 17:42:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 17:42:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 17:42:56"} -{"0":"e","1":"y","10":"J","100":"i","101":"L","102":"C","103":"J","104":"s","105":"Y","106":"X","107":"N","108":"0","109":"T","11":"I","110":"G","111":"9","112":"n","113":"a","114":"W","115":"4","116":"i","117":"O","118":"i","119":"I","12":"U","120":"y","121":"M","122":"D","123":"I","124":"2","125":"L","126":"T","127":"A","128":"0","129":"L","13":"z","130":"T","131":"I","132":"w","133":"V","134":"D","135":"E","136":"y","137":"O","138":"j","139":"Q","14":"I","140":"4","141":"O","142":"j","143":"A","144":"2","145":"L","146":"j","147":"E","148":"3","149":"O","15":"1","150":"V","151":"o","152":"i","153":"L","154":"C","155":"J","156":"p","157":"Y","158":"X","159":"Q","16":"N","160":"i","161":"O","162":"j","163":"E","164":"3","165":"N","166":"z","167":"Y","168":"2","169":"O","17":"i","170":"D","171":"k","172":"y","173":"O","174":"D","175":"Y","176":"s","177":"I","178":"m","179":"V","18":"I","180":"4","181":"c","182":"C","183":"I","184":"6","185":"M","186":"T","187":"g","188":"w","189":"O","19":"s","190":"D","191":"I","192":"0","193":"N","194":"j","195":"g","196":"4","197":"N","198":"n","199":"0","2":"J","20":"I","200":".","201":"T","202":"A","203":"N","204":"A","205":"n","206":"e","207":"W","208":"E","209":"4","21":"n","210":"z","211":"K","212":"y","213":"L","214":"o","215":"o","216":"-","217":"Q","218":"c","219":"U","22":"R","220":"T","221":"g","222":"a","223":"k","224":"H","225":"E","226":"N","227":"2","228":"9","229":"o","23":"5","230":"j","231":"e","232":"W","233":"c","234":"0","235":"L","236":"n","237":"c","238":"p","239":"r","24":"c","240":"v","241":"T","242":"G","243":"0","25":"C","26":"I","27":"6","28":"I","29":"k","3":"h","30":"p","31":"X","32":"V","33":"C","34":"J","35":"9","36":".","37":"e","38":"y","39":"J","4":"b","40":"1","41":"c","42":"2","43":"V","44":"y","45":"S","46":"W","47":"Q","48":"i","49":"O","5":"G","50":"i","51":"J","52":"h","53":"N","54":"z","55":"I","56":"0","57":"Z","58":"m","59":"V","6":"c","60":"i","61":"O","62":"S","63":"0","64":"5","65":"O","66":"T","67":"F","68":"i","69":"L","7":"i","70":"T","71":"Q","72":"z","73":"Z","74":"j","75":"c","76":"t","77":"Y","78":"m","79":"Z","8":"O","80":"j","81":"Y","82":"i","83":"1","84":"k","85":"Y","86":"z","87":"c","88":"4","89":"Y","9":"i","90":"z","91":"B","92":"i","93":"N","94":"z","95":"g","96":"5","97":"M","98":"T","99":"Q","level":"info","message":"User logged in:","timestamp":"2026-04-20 18:18:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 18:22:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 18:22:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 18:22:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 18:22:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 18:22:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 18:22:48"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 18:22:49"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 18:22:49"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 18:22:49"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 18:22:49"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 18:22:49"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 18:22:49"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 18:33:00"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 18:33:00"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 18:33:00"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 18:33:00"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 18:33:00"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 18:33:00"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 21:53:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 21:53:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 21:53:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 21:53:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 21:53:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 21:53:22"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-20 21:53:32"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-20 21:53:32"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-20 21:53:32"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-20 21:53:32"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-20 21:53:32"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-20 21:53:32"} -{"level":"info","message":"SIGINT received, closing server gracefully...","timestamp":"2026-04-20 22:19:59"} diff --git a/backend/logs/combined/combined-2026-04-21.log b/backend/logs/combined/combined-2026-04-21.log deleted file mode 100644 index ed3fb97..0000000 --- a/backend/logs/combined/combined-2026-04-21.log +++ /dev/null @@ -1,1861 +0,0 @@ -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:23:03"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:23:03"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:23:03"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:23:03"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:23:03"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:23:03"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:24:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:24:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:24:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:24:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:24:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:24:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:24:11"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:24:11"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:24:11"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:24:11"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:24:11"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:24:11"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:24:17"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:24:17"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:24:17"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:24:17"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:24:17"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:24:17"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:24:19"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:24:19"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:24:19"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:24:19"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:24:19"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:24:19"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:39:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:39:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:39:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:39:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:39:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:39:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:40:02"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:40:02"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:40:02"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:40:02"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:40:02"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:40:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:40:50"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:40:50"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:40:50"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:40:50"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:40:50"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:40:50"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:40:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:40:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:40:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:40:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:40:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:40:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:01"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:01"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:01"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:01"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:01"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:01"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:03"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:03"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:03"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:03"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:03"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:03"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:06"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:06"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:06"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:06"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:06"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:34"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:34"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:34"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:34"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:34"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:34"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:35"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:35"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:35"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:35"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:35"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:35"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:43"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:43"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:43"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:43"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:43"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:43"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:45"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:48"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:50"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:50"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:50"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:50"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:50"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:50"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:41:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:41:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:41:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:41:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:41:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:41:56"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:42:40"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:42:40"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:42:40"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:42:40"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:42:40"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:42:40"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:02"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:02"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:02"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:02"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:02"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:15"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:15"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:15"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:15"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:15"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:15"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:17"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:17"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:17"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:17"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:17"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:17"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:52"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:52"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:52"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:52"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:52"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:52"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:56"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:43:58"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:43:58"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:43:58"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:43:58"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:43:58"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:43:59"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:44:02"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:44:02"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:44:02"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:44:02"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:44:02"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:44:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:44:28"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:44:28"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:44:28"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:44:28"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:44:28"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:44:28"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:44:32"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:44:32"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:44:32"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:44:32"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:44:32"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:44:32"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:44:52"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:44:52"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:44:52"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:44:52"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:44:52"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:44:52"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:44:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:44:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:44:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:44:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:44:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:44:56"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:44:59"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:44:59"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:44:59"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:44:59"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:44:59"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:44:59"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:45:01"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:45:01"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:45:01"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:45:01"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:45:01"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:45:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:45:08"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:45:08"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:45:08"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:45:08"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:45:08"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:45:08"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:46:11"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:46:11"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:46:11"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:46:11"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:46:11"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:46:11"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:46:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:46:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:46:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:46:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:46:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:46:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:46:15"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:46:15"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:46:15"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:46:15"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:46:15"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:46:15"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:46:25"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:46:25"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:46:25"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:46:25"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:46:25"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:46:25"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:47:12"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:47:12"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:47:12"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:47:12"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:47:12"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:47:12"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:47:17"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:47:17"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:47:17"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:47:17"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:47:17"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:47:17"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:47:20"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:47:20"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:47:20"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:47:20"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:47:20"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:47:20"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:47:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:47:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:47:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:47:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:47:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:47:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:47:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:47:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:47:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:47:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:47:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:47:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:48:01"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:48:01"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:48:01"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:48:01"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:48:01"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:48:01"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:48:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:48:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:48:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:48:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:48:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:48:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:48:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:48:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:48:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:48:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:48:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:48:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:49:35"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:49:35"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:49:35"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:49:35"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:49:35"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:49:35"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:49:38"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:49:38"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:49:38"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:49:38"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:49:38"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:49:38"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:49:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:49:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:49:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:49:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:49:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:49:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:03"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:03"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:03"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:03"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:03"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:03"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:12"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:12"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:12"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:12"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:12"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:12"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:15"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:15"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:15"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:15"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:15"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:15"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:26"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:26"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:26"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:26"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:26"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:26"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:36"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:36"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:36"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:36"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:36"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:36"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:38"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:38"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:38"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:38"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:38"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:38"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:47"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:47"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:47"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:47"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:47"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:47"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:48"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:50"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:50"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:50"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:50"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:50"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:50"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:56"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:50:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:50:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:50:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:50:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:50:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:50:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:00"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:00"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:00"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:00"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:00"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:00"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:16"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:16"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:16"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:16"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:16"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:16"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:18"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:18"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:18"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:18"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:18"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:18"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:26"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:26"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:26"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:26"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:26"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:26"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:28"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:28"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:28"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:28"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:28"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:28"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:32"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:32"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:32"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:32"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:32"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:32"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:37"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:37"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:37"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:37"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:37"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:37"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:41"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:41"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:41"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:41"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:41"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:41"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:51:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:51:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:51:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:51:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:51:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:51:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:52:08"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:52:08"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:52:08"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:52:08"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:52:08"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:52:08"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:52:18"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:52:18"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:52:18"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:52:18"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:52:18"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:52:18"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:52:28"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:52:28"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:52:28"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:52:28"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:52:28"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:52:28"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:52:31"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:52:31"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:52:31"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:52:31"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:52:31"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:52:31"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:52:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:52:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:52:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:52:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:52:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:52:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:52:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:52:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:52:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:52:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:52:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:52:45"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:53:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:53:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:53:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:53:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:53:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:53:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:53:34"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:53:34"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:53:34"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:53:34"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:53:34"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:53:34"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:53:44"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:53:44"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:53:44"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:53:44"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:53:44"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:53:44"} -{"level":"info","message":"SIGINT received, closing server gracefully...","timestamp":"2026-04-21 07:56:28"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 07:58:32"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 07:58:32"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 07:58:32"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 07:58:32"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 07:58:32"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 07:58:32"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 08:02:40"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 08:02:40"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 08:02:40"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 08:02:40"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 08:02:40"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 08:02:40"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 08:02:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 08:02:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 08:02:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 08:02:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 08:02:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 08:02:45"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 08:03:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 08:03:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 08:03:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 08:03:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 08:03:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 08:03:48"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 08:56:37"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 08:56:37"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 08:56:37"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 08:56:37"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 08:56:37"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 08:56:37"} -{"0":"e","1":"y","10":"J","100":"i","101":"L","102":"C","103":"J","104":"s","105":"Y","106":"X","107":"N","108":"0","109":"T","11":"I","110":"G","111":"9","112":"n","113":"a","114":"W","115":"4","116":"i","117":"O","118":"i","119":"I","12":"U","120":"y","121":"M","122":"D","123":"I","124":"2","125":"L","126":"T","127":"A","128":"0","129":"L","13":"z","130":"T","131":"I","132":"x","133":"V","134":"D","135":"A","136":"z","137":"O","138":"j","139":"I","14":"I","140":"2","141":"O","142":"j","143":"U","144":"0","145":"L","146":"j","147":"E","148":"w","149":"O","15":"1","150":"V","151":"o","152":"i","153":"L","154":"C","155":"J","156":"p","157":"Y","158":"X","159":"Q","16":"N","160":"i","161":"O","162":"j","163":"E","164":"3","165":"N","166":"z","167":"Y","168":"3","169":"N","17":"i","170":"D","171":"I","172":"w","173":"M","174":"T","175":"Q","176":"s","177":"I","178":"m","179":"V","18":"I","180":"4","181":"c","182":"C","183":"I","184":"6","185":"M","186":"T","187":"g","188":"w","189":"O","19":"s","190":"D","191":"I","192":"5","193":"O","194":"T","195":"Y","196":"x","197":"N","198":"H","199":"0","2":"J","20":"I","200":".","201":"n","202":"x","203":"y","204":"W","205":"t","206":"l","207":"k","208":"g","209":"q","21":"n","210":"0","211":"p","212":"w","213":"D","214":"U","215":"O","216":"F","217":"S","218":"R","219":"t","22":"R","220":"g","221":"T","222":"n","223":"w","224":"h","225":"C","226":"O","227":"I","228":"t","229":"y","23":"5","230":"z","231":"Y","232":"S","233":"2","234":"P","235":"J","236":"n","237":"n","238":"E","239":"j","24":"c","240":"y","241":"_","242":"i","243":"U","25":"C","26":"I","27":"6","28":"I","29":"k","3":"h","30":"p","31":"X","32":"V","33":"C","34":"J","35":"9","36":".","37":"e","38":"y","39":"J","4":"b","40":"1","41":"c","42":"2","43":"V","44":"y","45":"S","46":"W","47":"Q","48":"i","49":"O","5":"G","50":"i","51":"J","52":"h","53":"N","54":"z","55":"I","56":"0","57":"Z","58":"m","59":"V","6":"c","60":"i","61":"O","62":"S","63":"0","64":"5","65":"O","66":"T","67":"F","68":"i","69":"L","7":"i","70":"T","71":"Q","72":"z","73":"Z","74":"j","75":"c","76":"t","77":"Y","78":"m","79":"Z","8":"O","80":"j","81":"Y","82":"i","83":"1","84":"k","85":"Y","86":"z","87":"c","88":"4","89":"Y","9":"i","90":"z","91":"B","92":"i","93":"N","94":"z","95":"g","96":"5","97":"M","98":"T","99":"Q","level":"info","message":"User logged in:","timestamp":"2026-04-21 08:56:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:01:35"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:01:35"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:01:35"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:01:35"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:01:35"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:01:35"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:01:55"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:01:55"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:01:55"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:01:55"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:01:55"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:01:55"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:08:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:08:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:08:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:08:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:08:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:08:22"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:08:23"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:08:23"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:08:23"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:08:23"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:08:23"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:08:23"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:08:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:08:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:08:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:08:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:08:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:08:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:08:31"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:08:31"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:08:31"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:08:31"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:08:31"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:08:31"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:08:33"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:08:33"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:08:33"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:08:33"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:08:33"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:08:33"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:09:08"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:09:08"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:09:08"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:09:08"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:09:08"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:09:08"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:09:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:09:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:09:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:09:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:09:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:09:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:09:16"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:09:16"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:09:16"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:09:16"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:09:16"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:09:16"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:09:18"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:09:18"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:09:18"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:09:18"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:09:18"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:09:18"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:09:20"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:09:20"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:09:20"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:09:20"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:09:20"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:09:20"} -{"level":"info","message":"SIGINT received, closing server gracefully...","timestamp":"2026-04-21 09:11:37"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:11:41"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:11:41"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:11:41"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:11:41"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:11:41"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:11:41"} -{"level":"info","message":"SIGINT received, closing server gracefully...","timestamp":"2026-04-21 09:12:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:21:43"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:21:43"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:21:43"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:21:43"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:21:43"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:21:43"} -{"0":"e","1":"y","10":"J","100":"i","101":"L","102":"C","103":"J","104":"s","105":"Y","106":"X","107":"N","108":"0","109":"T","11":"I","110":"G","111":"9","112":"n","113":"a","114":"W","115":"4","116":"i","117":"O","118":"i","119":"I","12":"U","120":"y","121":"M","122":"D","123":"I","124":"2","125":"L","126":"T","127":"A","128":"0","129":"L","13":"z","130":"T","131":"I","132":"x","133":"V","134":"D","135":"A","136":"z","137":"O","138":"j","139":"U","14":"I","140":"y","141":"O","142":"j","143":"E","144":"y","145":"L","146":"j","147":"A","148":"y","149":"O","15":"1","150":"V","151":"o","152":"i","153":"L","154":"C","155":"J","156":"p","157":"Y","158":"X","159":"Q","16":"N","160":"i","161":"O","162":"j","163":"E","164":"3","165":"N","166":"z","167":"Y","168":"3","169":"N","17":"i","170":"D","171":"M","172":"1","173":"M","174":"z","175":"I","176":"s","177":"I","178":"m","179":"V","18":"I","180":"4","181":"c","182":"C","183":"I","184":"6","185":"M","186":"T","187":"g","188":"w","189":"O","19":"s","190":"D","191":"M","192":"w","193":"M","194":"T","195":"E","196":"z","197":"M","198":"n","199":"0","2":"J","20":"I","200":".","201":"a","202":"2","203":"5","204":"4","205":"3","206":"o","207":"L","208":"-","209":"9","21":"n","210":"b","211":"o","212":"-","213":"f","214":"K","215":"P","216":"G","217":"L","218":"Y","219":"G","22":"R","220":"B","221":"l","222":"m","223":"U","224":"0","225":"r","226":"x","227":"Z","228":"Y","229":"K","23":"5","230":"G","231":"n","232":"D","233":"d","234":"T","235":"u","236":"Z","237":"k","238":"l","239":"p","24":"c","240":"k","241":"o","242":"n","243":"Q","25":"C","26":"I","27":"6","28":"I","29":"k","3":"h","30":"p","31":"X","32":"V","33":"C","34":"J","35":"9","36":".","37":"e","38":"y","39":"J","4":"b","40":"1","41":"c","42":"2","43":"V","44":"y","45":"S","46":"W","47":"Q","48":"i","49":"O","5":"G","50":"i","51":"J","52":"h","53":"N","54":"z","55":"I","56":"0","57":"Z","58":"m","59":"V","6":"c","60":"i","61":"O","62":"S","63":"0","64":"5","65":"O","66":"T","67":"F","68":"i","69":"L","7":"i","70":"T","71":"Q","72":"z","73":"Z","74":"j","75":"c","76":"t","77":"Y","78":"m","79":"Z","8":"O","80":"j","81":"Y","82":"i","83":"1","84":"k","85":"Y","86":"z","87":"c","88":"4","89":"Y","9":"i","90":"z","91":"B","92":"i","93":"N","94":"z","95":"g","96":"5","97":"M","98":"T","99":"Q","level":"info","message":"User logged in:","timestamp":"2026-04-21 09:22:12"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:25:06"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:25:06"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:25:06"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:25:06"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:25:06"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:25:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:25:38"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:25:38"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:25:38"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:25:38"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:25:38"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:25:38"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:30:46"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:30:46"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:30:46"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:30:46"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:30:46"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:30:46"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:31:18"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:31:18"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:31:18"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:31:18"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:31:18"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:31:18"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:53:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:53:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:53:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:53:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:53:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:53:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:53:13"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:53:13"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:53:13"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:53:13"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:53:13"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:53:13"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:53:15"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:53:15"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:53:15"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:53:15"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:53:15"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:53:15"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:53:25"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:53:25"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:53:25"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:53:25"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:53:25"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:53:25"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:55:01"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:55:01"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:55:01"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:55:01"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:55:01"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:55:01"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:55:44"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:55:44"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:55:44"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:55:44"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:55:44"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:55:44"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 09:55:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 09:55:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 09:55:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 09:55:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 09:55:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 09:55:48"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:05:58"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:05:58"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:05:58"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:05:58"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:05:58"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:05:58"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:09:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:09:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:09:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:09:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:09:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:09:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:10:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:10:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:10:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:10:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:10:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:10:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:10:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:10:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:10:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:10:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:10:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:10:22"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:19:40"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:19:40"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:19:40"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:19:40"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:19:40"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:19:40"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:19:47"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:19:47"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:19:47"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:19:47"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:19:47"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:19:47"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:19:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:19:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:19:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:19:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:19:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:19:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:23:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:23:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:23:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:23:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:23:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:23:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:29:37"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:29:37"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:29:37"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:29:37"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:29:37"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:29:37"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:32:06"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:32:06"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:32:06"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:32:06"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:32:06"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:32:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:32:16"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:32:16"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:32:16"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:32:16"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:32:16"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:32:16"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:32:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:32:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:32:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:32:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:32:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:32:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:33:07"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:33:07"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:33:07"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:33:07"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:33:07"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:33:07"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:33:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:33:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:33:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:33:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:33:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:33:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:33:17"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:33:17"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:33:17"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:33:17"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:33:17"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:33:17"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:33:19"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:33:19"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:33:19"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:33:19"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:33:19"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:33:19"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:33:27"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:33:27"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:33:27"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:33:27"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:33:27"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:33:27"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:34:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:34:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:34:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:34:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:34:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:34:56"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:35:06"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:35:06"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:35:06"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:35:06"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:35:06"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:35:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:35:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:35:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:35:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:35:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:35:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:35:45"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:35:46"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:35:46"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:35:46"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:35:47"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:35:47"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:35:47"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:35:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:35:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:35:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:35:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:35:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:35:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:35:55"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:35:55"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:35:55"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:35:55"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:35:55"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:35:55"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:35:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:35:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:35:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:35:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:35:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:35:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:35:59"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:35:59"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:35:59"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:35:59"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:35:59"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:35:59"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:36:08"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:36:08"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:36:08"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:36:08"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:36:08"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:36:08"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:37:15"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:37:15"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:37:15"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:37:15"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:37:15"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:37:15"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:37:16"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:37:16"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:37:16"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:37:16"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:37:16"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:37:16"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:37:20"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:37:20"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:37:20"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:37:20"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:37:20"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:37:20"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:37:27"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:37:27"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:37:27"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:37:27"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:37:27"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:37:27"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:38:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:38:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:38:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:38:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:38:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:38:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:39:00"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:39:00"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:39:00"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:39:00"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:39:00"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:39:00"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:39:02"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:39:02"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:39:02"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:39:02"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:39:02"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:39:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:45:10"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:45:10"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:45:10"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:45:10"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:45:10"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:45:10"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:46:03"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:46:03"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:46:03"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:46:03"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:46:03"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:46:03"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:46:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:46:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:46:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:46:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:46:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:46:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:46:13"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:46:13"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:46:13"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:46:13"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:46:13"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:46:13"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:46:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:46:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:46:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:46:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:46:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:46:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:46:16"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:46:16"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:46:16"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:46:16"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:46:16"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:46:16"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 10:46:27"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 10:46:27"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 10:46:27"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 10:46:27"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 10:46:27"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 10:46:27"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:22"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:24"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:24"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:24"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:24"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:24"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:24"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:33"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:33"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:33"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:33"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:33"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:33"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:36"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:36"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:36"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:36"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:36"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:36"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:41"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:41"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:41"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:41"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:41"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:41"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:45"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:47"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:47"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:47"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:47"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:47"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:47"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:49"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:49"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:49"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:49"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:49"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:49"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:50"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:50"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:50"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:50"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:50"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:50"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:06:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:06:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:06:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:06:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:06:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:06:56"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:07:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:07:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:07:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:07:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:07:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:07:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:07:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:07:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:07:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:07:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:07:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:07:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:07:13"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:07:13"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:07:13"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:07:13"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:07:13"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:07:13"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:07:21"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:07:21"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:07:21"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:07:21"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:07:21"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:07:21"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:08:35"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:08:35"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:08:35"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:08:35"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:08:35"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:08:35"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:08:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:08:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:08:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:08:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:08:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:08:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:08:44"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:08:44"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:08:44"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:08:44"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:08:44"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:08:44"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:08:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:08:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:08:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:08:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:08:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:08:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:08:56"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:08:56"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:08:56"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:08:56"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:08:56"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:08:56"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:10:02"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:10:02"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:10:02"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:10:02"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:10:02"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:10:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:11:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:11:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:11:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:11:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:11:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:11:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:34:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:34:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:34:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:34:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:34:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:34:22"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:34:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:34:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:34:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:34:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:34:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:34:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:34:32"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:34:32"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:34:32"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:34:32"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:34:32"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:34:32"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:34:34"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:34:34"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:34:34"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:34:34"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:34:34"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:34:34"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:38:50"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:38:50"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:38:50"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:38:50"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:38:50"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:38:50"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:39:28"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:39:28"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:39:28"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:39:28"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:39:28"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:39:28"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:39:53"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:39:53"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:39:53"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:39:53"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:39:53"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:39:53"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:40:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:40:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:40:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:40:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:40:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:40:22"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:40:26"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:40:26"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:40:26"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:40:26"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:40:26"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:40:26"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:40:36"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:40:36"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:40:36"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:40:36"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:40:36"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:40:36"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:40:38"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:40:38"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:40:38"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:40:38"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:40:38"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:40:38"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:40:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:40:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:40:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:40:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:40:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:40:48"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:40:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:40:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:40:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:40:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:40:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:40:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:40:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:40:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:40:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:40:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:40:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:40:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:18"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:18"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:18"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:18"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:18"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:18"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:37"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:37"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:37"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:37"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:37"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:37"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:47"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:47"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:47"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:47"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:47"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:47"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:49"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:49"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:49"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:49"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:49"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:49"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:41:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:41:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:41:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:41:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:41:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:41:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:03"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:03"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:03"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:03"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:03"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:03"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:06"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:06"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:06"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:06"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:06"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:27"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:27"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:27"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:27"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:27"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:27"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:29"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:29"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:29"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:29"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:29"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:29"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:33"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:33"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:33"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:33"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:33"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:33"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:36"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:36"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:36"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:36"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:36"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:36"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:40"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:40"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:40"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:40"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:40"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:40"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:42:43"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:42:43"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:42:43"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:42:43"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:42:43"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:42:43"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:43:41"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:43:41"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:43:41"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:43:41"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:43:41"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:43:41"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:43:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:43:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:43:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:43:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:43:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:43:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:46:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:46:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:46:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:46:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:46:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:46:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:46:12"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:46:12"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:46:12"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:46:12"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:46:12"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:46:12"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:46:59"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:46:59"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:46:59"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:46:59"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:46:59"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:46:59"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:47:40"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:47:40"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:47:40"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:47:40"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:47:40"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:47:40"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:47:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:47:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:47:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:47:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:47:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:47:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:47:46"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:47:46"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:47:46"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:47:46"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:47:46"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:47:47"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:49:26"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:49:26"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:49:26"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:49:26"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:49:26"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:49:26"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:49:29"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:49:29"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:49:29"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:49:29"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:49:29"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:49:29"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:51:33"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:51:33"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:51:33"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:51:33"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:51:33"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:51:33"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:51:43"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:51:43"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:51:43"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:51:43"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:51:43"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:51:43"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:51:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:51:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:51:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:51:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:51:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:51:45"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:54:10"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:54:10"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:54:10"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:54:10"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:54:10"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:54:10"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:54:21"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:54:21"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:54:21"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:54:21"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:54:21"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:54:21"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:54:24"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:54:24"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:54:24"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:54:24"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:54:24"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:54:24"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:56:49"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:56:49"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:56:49"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:56:49"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:56:49"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:56:49"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:56:52"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:56:52"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:56:52"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:56:52"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:56:52"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:56:52"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:02"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:02"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:02"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:02"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:02"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:02"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:04"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:04"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:04"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:04"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:04"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:04"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:06"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:06"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:06"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:06"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:06"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:06"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:08"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:08"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:08"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:08"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:08"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:08"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:13"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:13"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:13"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:13"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:13"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:13"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:49"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:49"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:49"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:49"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:49"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:49"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:51"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:51"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:51"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:51"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:51"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:51"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:57:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:57:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:57:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:57:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:57:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:57:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:58:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:58:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:58:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:58:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:58:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:58:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:58:07"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:58:07"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:58:07"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:58:07"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:58:07"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:58:07"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 11:58:35"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 11:58:35"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 11:58:35"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 11:58:35"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 11:58:35"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 11:58:35"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:00:08"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:00:08"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:00:08"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:00:08"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:00:08"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:00:08"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:00:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:00:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:00:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:00:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:00:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:00:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:01:37"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:01:37"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:01:37"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:01:37"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:01:37"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:01:37"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:31"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:31"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:31"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:31"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:31"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:31"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:38"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:38"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:38"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:38"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:38"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:38"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:44"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:44"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:44"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:44"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:44"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:44"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:45"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:48"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:50"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:50"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:50"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:50"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:50"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:50"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:52"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:52"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:52"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:52"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:52"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:52"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:58"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:58"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:58"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:58"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:58"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:58"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:06:59"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:06:59"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:06:59"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:06:59"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:06:59"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:06:59"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:01"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:01"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:01"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:01"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:01"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:01"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:03"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:03"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:03"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:03"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:03"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:03"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:07"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:07"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:07"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:07"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:07"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:07"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:25"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:25"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:25"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:25"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:25"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:25"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:26"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:26"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:26"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:26"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:26"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:26"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:29"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:29"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:29"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:29"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:29"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:29"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:31"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:31"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:31"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:31"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:31"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:31"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:34"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:34"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:34"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:34"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:34"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:34"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:35"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:35"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:35"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:35"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:35"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:35"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:42"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:42"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:42"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:42"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:42"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:42"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:07:43"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:07:43"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:07:43"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:07:43"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:07:43"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:07:43"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:21"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:21"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:21"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:21"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:21"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:21"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:23"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:23"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:23"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:23"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:23"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:23"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:27"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:27"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:27"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:27"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:27"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:27"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:30"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:30"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:30"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:30"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:30"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:30"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:33"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:33"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:33"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:33"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:33"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:33"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:36"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:36"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:36"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:36"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:36"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:36"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:38"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:38"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:38"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:38"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:38"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:38"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:54"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:54"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:54"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:54"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:54"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:54"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:08:57"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:08:57"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:08:57"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:08:57"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:08:57"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:08:57"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:09:01"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:09:01"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:09:01"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:09:01"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:09:01"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:09:01"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:09:07"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:09:07"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:09:07"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:09:07"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:09:07"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:09:07"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:09:10"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:09:10"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:09:10"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:09:10"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:09:10"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:09:10"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:09:49"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:09:49"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:09:49"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:09:49"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:09:49"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:09:49"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:10:01"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:10:01"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:10:01"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:10:01"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:10:01"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:10:01"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:10:24"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:10:24"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:10:24"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:10:24"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:10:24"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:10:24"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:10:26"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:10:26"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:10:26"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:10:26"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:10:26"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:10:26"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:13:20"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:13:20"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:13:20"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:13:20"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:13:20"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:13:20"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:13:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:13:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:13:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:13:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:13:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:13:22"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:14:16"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:14:16"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:14:16"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:14:16"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:14:16"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:14:16"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:14:17"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:14:17"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:14:17"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:14:17"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:14:17"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:14:17"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:14:21"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:14:21"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:14:21"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:14:21"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:14:21"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:14:21"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:14:24"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:14:24"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:14:24"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:14:24"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:14:24"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:14:24"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:14:37"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:14:37"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:14:37"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:14:37"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:14:37"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:14:37"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:14:39"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:14:39"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:14:39"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:14:39"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:14:39"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:14:39"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:15:05"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:15:05"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:15:05"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:15:05"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:15:05"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:15:05"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:15:09"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:15:09"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:15:09"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:15:09"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:15:09"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:15:09"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:15:14"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:15:14"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:15:14"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:15:14"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:15:14"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:15:14"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:15:23"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:15:23"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:15:23"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:15:23"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:15:23"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:15:23"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:15:37"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:15:37"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:15:37"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:15:37"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:15:37"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:15:37"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:15:40"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:15:40"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:15:40"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:15:40"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:15:40"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:15:40"} -{"level":"info","message":"🛡️ Database connection established successfully 🛡️","timestamp":"2026-04-21 12:15:44"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 12:15:44"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 12:15:44"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 12:15:44"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 12:15:44"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 12:15:44"} -{"level":"info","message":"SIGINT received, closing server gracefully...","timestamp":"2026-04-21 12:53:52"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-21 14:03:48"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 14:03:48"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 14:03:48"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 14:03:48"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 14:03:48"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 14:03:48"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-21 14:29:45"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 14:29:45"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 14:29:45"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 14:29:45"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 14:29:45"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 14:29:45"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-21 14:30:22"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 14:30:22"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 14:30:22"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 14:30:22"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 14:30:22"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 14:30:22"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-21 14:30:55"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 14:30:55"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 14:30:55"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 14:30:55"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 14:30:55"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 14:30:55"} -{"level":"info","message":"SIGINT received, closing server gracefully...","timestamp":"2026-04-21 15:21:49"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-21 15:22:00"} -{"level":"info","message":"🛡️ Database loaded 🛡️","timestamp":"2026-04-21 15:22:00"} -{"level":"info","message":"🛡️ Google OAuth loaded 🛡️","timestamp":"2026-04-21 15:22:00"} -{"level":"info","message":"🛡️ Express loaded 🛡️","timestamp":"2026-04-21 15:22:00"} -{"level":"info","message":"🛡️ All modules loaded! 🛡️","timestamp":"2026-04-21 15:22:00"} -{"level":"info","message":"🛡️ Server listening on port: 8000 🛡️","timestamp":"2026-04-21 15:22:00"} diff --git a/backend/logs/error/error-2026-03-31.log b/backend/logs/error/error-2026-03-31.log deleted file mode 100644 index db8fc12..0000000 --- a/backend/logs/error/error-2026-03-31.log +++ /dev/null @@ -1,8 +0,0 @@ -{"level":"error","message":"Database connection closed","timestamp":"2026-03-31 11:43:54"} -{"level":"error","message":"Database connection closed","timestamp":"2026-03-31 11:44:08"} -{"level":"error","message":"Database connection closed","timestamp":"2026-03-31 11:49:06"} -{"level":"error","message":"Database connection closed","timestamp":"2026-03-31 12:00:47"} -{"code":"EADDRINUSE","errno":0,"level":"error","message":"Failed to start server. Is port 8000 in use?","stack":"Error\n at serve (unknown)\n at (node:_http_server:271:39)\n at (node:_http_server:248:33)\n at startServer (/Users/shivamverma/Desktop/personal-work/codesm/CodeSM/backend/src/index.ts:16:10)\n at processTicksAndRejections (unknown:7:39)","syscall":"listen","timestamp":"2026-03-31 13:41:11"} -{"code":"EADDRINUSE","errno":0,"level":"error","message":"Failed to start server. Is port 8000 in use?","stack":"Error\n at serve (unknown)\n at (node:_http_server:271:39)\n at (node:_http_server:248:33)\n at startServer (/Users/shivamverma/Desktop/personal-work/codesm/CodeSM/backend/src/index.ts:16:10)\n at processTicksAndRejections (unknown:7:39)","syscall":"listen","timestamp":"2026-03-31 13:41:50"} -{"level":"error","message":"Database connection closed","timestamp":"2026-03-31 13:42:22"} -{"level":"error","message":"Database connection closed","timestamp":"2026-03-31 16:06:32"} diff --git a/backend/logs/error/error-2026-04-20.log b/backend/logs/error/error-2026-04-20.log deleted file mode 100644 index c46c712..0000000 --- a/backend/logs/error/error-2026-04-20.log +++ /dev/null @@ -1 +0,0 @@ -{"level":"error","message":"Database connection closed","timestamp":"2026-04-20 22:19:59"} diff --git a/backend/logs/error/error-2026-04-21.log b/backend/logs/error/error-2026-04-21.log deleted file mode 100644 index 74781d7..0000000 --- a/backend/logs/error/error-2026-04-21.log +++ /dev/null @@ -1,5 +0,0 @@ -{"level":"error","message":"Database connection closed","timestamp":"2026-04-21 07:56:28"} -{"level":"error","message":"Database connection closed","timestamp":"2026-04-21 09:11:37"} -{"level":"error","message":"Database connection closed","timestamp":"2026-04-21 09:12:14"} -{"level":"error","message":"Database connection closed","timestamp":"2026-04-21 12:53:52"} -{"level":"error","message":"Database connection closed","timestamp":"2026-04-21 15:21:49"} diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..ccf8385 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,44 @@ +services: + postgres: + image: postgres:17-alpine + container_name: codesm-postgres + restart: unless-stopped + environment: + POSTGRES_DB: codesm_dev + POSTGRES_USER: codesm + POSTGRES_PASSWORD: codesm_dev_password + ports: + - "5432:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U codesm -d codesm_dev"] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + container_name: codesm-redis + restart: unless-stopped + command: + [ + "redis-server", + "--requirepass", + "strong_password_123", + "--appendonly", + "yes" + ] + ports: + - "6379:6379" + volumes: + - redis_data:/data + healthcheck: + test: ["CMD", "redis-cli", "-a", "strong_password_123", "ping"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + postgres_data: + redis_data: diff --git a/workers/logs/combined/.a38ab147e6d6cf164f60c30ab92bc91339f28bcb-audit.json b/workers/logs/combined/.a38ab147e6d6cf164f60c30ab92bc91339f28bcb-audit.json deleted file mode 100644 index a8bda58..0000000 --- a/workers/logs/combined/.a38ab147e6d6cf164f60c30ab92bc91339f28bcb-audit.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "keep": { - "days": true, - "amount": 14 - }, - "auditLog": "logs/combined/.a38ab147e6d6cf164f60c30ab92bc91339f28bcb-audit.json", - "files": [ - { - "date": 1776823023172, - "name": "logs/combined/combined-2026-04-22.log", - "hash": "59f5d3b1e0d34ea2d87d05effa256a9ac01930ab5132db81eb9c03161f727454" - }, - { - "date": 1776954881418, - "name": "logs/combined/combined-2026-04-23.log", - "hash": "1ac2609a74dc141f189bb106cd0c8c0379bfada8caf0f1dad6618ee0c01bc1e9" - }, - { - "date": 1777023768939, - "name": "logs/combined/combined-2026-04-24.log", - "hash": "560c4bdabf7be2be553625911f151ab3ce3b1eb27cbcb33142107ec851fd05bb" - }, - { - "date": 1777128057134, - "name": "logs/combined/combined-2026-04-25.log", - "hash": "0d76d80461b48789addd6ed106ff6fcab9da9caa12b79da03b3c2feabea96927" - } - ], - "hashType": "sha256" -} \ No newline at end of file diff --git a/workers/logs/combined/combined-2026-04-22.log b/workers/logs/combined/combined-2026-04-22.log deleted file mode 100644 index 99eb8c1..0000000 --- a/workers/logs/combined/combined-2026-04-22.log +++ /dev/null @@ -1,17 +0,0 @@ -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 07:27:03"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 07:27:37"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 07:27:47"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 07:29:01"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:19:01"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:19:24"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:19:33"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:25:42"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:30:04"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:30:07"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:30:11"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:31:47"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:31:48"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:33:18"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:34:02"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:34:03"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-22 08:35:27"} diff --git a/workers/logs/combined/combined-2026-04-23.log b/workers/logs/combined/combined-2026-04-23.log deleted file mode 100644 index c42d62e..0000000 --- a/workers/logs/combined/combined-2026-04-23.log +++ /dev/null @@ -1,8 +0,0 @@ -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-23 20:04:41"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-23 20:05:16"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-23 20:05:37"} -{"client":{"_activeQuery":null,"_connected":true,"_connecting":false,"_connectionCallback":null,"_connectionError":false,"_connectionTimeoutMillis":10000,"_ended":false,"_ending":true,"_events":{},"_eventsCount":1,"_poolUseCount":6,"_queryQueue":[],"_queryable":false,"_types":{"_types":{"arrayParser":{},"builtins":{"ABSTIME":702,"ACLITEM":1033,"BIT":1560,"BOOL":16,"BPCHAR":1042,"BYTEA":17,"CHAR":18,"CID":29,"CIDR":650,"CIRCLE":718,"DATE":1082,"FLOAT4":700,"FLOAT8":701,"GTSVECTOR":3642,"INET":869,"INT2":21,"INT4":23,"INT8":20,"INTERVAL":1186,"JSON":114,"JSONB":3802,"MACADDR":829,"MACADDR8":774,"MONEY":790,"NUMERIC":1700,"OID":26,"PATH":602,"PG_DEPENDENCIES":3402,"PG_LSN":3220,"PG_NDISTINCT":3361,"PG_NODE_TREE":194,"POLYGON":604,"REFCURSOR":1790,"REGCLASS":2205,"REGCONFIG":3734,"REGDICTIONARY":3769,"REGNAMESPACE":4089,"REGOPER":2203,"REGOPERATOR":2204,"REGPROC":24,"REGPROCEDURE":2202,"REGROLE":4096,"REGTYPE":2206,"RELTIME":703,"SMGR":210,"TEXT":25,"TID":27,"TIME":1083,"TIMESTAMP":1114,"TIMESTAMPTZ":1184,"TIMETZ":1266,"TINTERVAL":704,"TSQUERY":3615,"TSVECTOR":3614,"TXID_SNAPSHOT":2970,"UUID":2950,"VARBIT":1562,"VARCHAR":1043,"XID":28,"XML":142}},"binary":{},"text":{}},"binary":false,"connection":{"_connecting":true,"_emitMessage":false,"_ending":true,"_events":{"end":[null,null,null]},"_eventsCount":23,"_keepAlive":false,"_keepAliveInitialDelayMillis":0,"parsedStatements":{},"ssl":{},"stream":{"_SNICallback":null,"_closeAfterHandlingError":false,"_controlReleased":true,"_events":{"end":[null,null],"newListener":[null,null]},"_eventsCount":6,"_hadError":false,"_host":null,"_newSessionPending":false,"_parent":{"_closeAfterHandlingError":false,"_events":{"close":[null,null,null],"error":[null,null]},"_eventsCount":4,"_hadError":false,"_host":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","_parent":null,"_pendingData":null,"_pendingEncoding":"","_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":65536,"length":0,"pipes":[]},"_server":null,"_sockname":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":0,"pendingcb":0,"writelen":0},"allowHalfOpen":false,"autoSelectFamilyAttemptedAddresses":["2600:1f18:4c3a:2904:3a9e:10db:a9af:2f9f:5432","34.206.177.121:5432","2600:1f18:4c3a:2916:d3ed:8521:ece0:2536:5432","100.49.65.130:5432","2600:1f18:4c3a:2921:6e89:52bc:59a6:6d53:5432","54.209.204.248:5432"],"connecting":false,"server":null},"_pendingData":null,"_pendingEncoding":"","_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":65536,"length":0,"pipes":[]},"_rejectUnauthorized":true,"_requestCert":true,"_secureEstablished":true,"_securePending":false,"_server":null,"_sockname":null,"_tlsOptions":{"isServer":false,"pipe":false,"rejectUnauthorized":true,"requestCert":true,"secureContext":{"context":{}}},"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":0,"pendingcb":0,"writelen":0},"allowHalfOpen":false,"alpnProtocol":false,"authorizationError":null,"authorized":true,"connecting":false,"encrypted":true,"secureConnecting":false,"servername":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","ssl":null}},"connectionParameters":{"binary":false,"client_encoding":"","connect_timeout":10,"database":"neondb","host":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","idle_in_transaction_session_timeout":false,"isDomainSocket":false,"lock_timeout":false,"port":5432,"query_timeout":false,"ssl":{},"statement_timeout":false,"user":"neondb_owner"},"connectionTimeoutHandle":{"_destroyed":true,"_idleNext":null,"_idlePrev":null,"_idleStart":405263,"_idleTimeout":-1,"_onTimeout":null,"_repeat":null},"database":"neondb","enableChannelBinding":false,"hasExecuted":true,"host":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","port":5432,"processID":-1182562049,"readyForQuery":true,"saslSession":null,"secretKey":-438720114,"ssl":{},"user":"neondb_owner"},"code":"ETIMEDOUT","errno":-60,"level":"error","message":"Unexpected error on idle PostgreSQL client read ETIMEDOUT","stack":"Error: read ETIMEDOUT\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:216:20)","syscall":"read","timestamp":"2026-04-23 20:15:33"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-23 20:37:36"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-23 20:37:36"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-23 20:46:45"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-23 20:46:45"} diff --git a/workers/logs/combined/combined-2026-04-24.log b/workers/logs/combined/combined-2026-04-24.log deleted file mode 100644 index 658d272..0000000 --- a/workers/logs/combined/combined-2026-04-24.log +++ /dev/null @@ -1,2 +0,0 @@ -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-24 15:12:49"} -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-24 15:13:41"} diff --git a/workers/logs/combined/combined-2026-04-25.log b/workers/logs/combined/combined-2026-04-25.log deleted file mode 100644 index 13745ab..0000000 --- a/workers/logs/combined/combined-2026-04-25.log +++ /dev/null @@ -1 +0,0 @@ -{"level":"info","message":"Database connection established successfully","timestamp":"2026-04-25 20:10:57"} diff --git a/workers/logs/error/error-2026-04-22.log b/workers/logs/error/error-2026-04-22.log deleted file mode 100644 index e69de29..0000000 diff --git a/workers/logs/error/error-2026-04-23.log b/workers/logs/error/error-2026-04-23.log deleted file mode 100644 index 4470eaf..0000000 --- a/workers/logs/error/error-2026-04-23.log +++ /dev/null @@ -1 +0,0 @@ -{"client":{"_activeQuery":null,"_connected":true,"_connecting":false,"_connectionCallback":null,"_connectionError":false,"_connectionTimeoutMillis":10000,"_ended":false,"_ending":true,"_events":{},"_eventsCount":1,"_poolUseCount":6,"_queryQueue":[],"_queryable":false,"_types":{"_types":{"arrayParser":{},"builtins":{"ABSTIME":702,"ACLITEM":1033,"BIT":1560,"BOOL":16,"BPCHAR":1042,"BYTEA":17,"CHAR":18,"CID":29,"CIDR":650,"CIRCLE":718,"DATE":1082,"FLOAT4":700,"FLOAT8":701,"GTSVECTOR":3642,"INET":869,"INT2":21,"INT4":23,"INT8":20,"INTERVAL":1186,"JSON":114,"JSONB":3802,"MACADDR":829,"MACADDR8":774,"MONEY":790,"NUMERIC":1700,"OID":26,"PATH":602,"PG_DEPENDENCIES":3402,"PG_LSN":3220,"PG_NDISTINCT":3361,"PG_NODE_TREE":194,"POLYGON":604,"REFCURSOR":1790,"REGCLASS":2205,"REGCONFIG":3734,"REGDICTIONARY":3769,"REGNAMESPACE":4089,"REGOPER":2203,"REGOPERATOR":2204,"REGPROC":24,"REGPROCEDURE":2202,"REGROLE":4096,"REGTYPE":2206,"RELTIME":703,"SMGR":210,"TEXT":25,"TID":27,"TIME":1083,"TIMESTAMP":1114,"TIMESTAMPTZ":1184,"TIMETZ":1266,"TINTERVAL":704,"TSQUERY":3615,"TSVECTOR":3614,"TXID_SNAPSHOT":2970,"UUID":2950,"VARBIT":1562,"VARCHAR":1043,"XID":28,"XML":142}},"binary":{},"text":{}},"binary":false,"connection":{"_connecting":true,"_emitMessage":false,"_ending":true,"_events":{"end":[null,null,null]},"_eventsCount":23,"_keepAlive":false,"_keepAliveInitialDelayMillis":0,"parsedStatements":{},"ssl":{},"stream":{"_SNICallback":null,"_closeAfterHandlingError":false,"_controlReleased":true,"_events":{"end":[null,null],"newListener":[null,null]},"_eventsCount":6,"_hadError":false,"_host":null,"_newSessionPending":false,"_parent":{"_closeAfterHandlingError":false,"_events":{"close":[null,null,null],"error":[null,null]},"_eventsCount":4,"_hadError":false,"_host":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","_parent":null,"_pendingData":null,"_pendingEncoding":"","_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":65536,"length":0,"pipes":[]},"_server":null,"_sockname":null,"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":0,"pendingcb":0,"writelen":0},"allowHalfOpen":false,"autoSelectFamilyAttemptedAddresses":["2600:1f18:4c3a:2904:3a9e:10db:a9af:2f9f:5432","34.206.177.121:5432","2600:1f18:4c3a:2916:d3ed:8521:ece0:2536:5432","100.49.65.130:5432","2600:1f18:4c3a:2921:6e89:52bc:59a6:6d53:5432","54.209.204.248:5432"],"connecting":false,"server":null},"_pendingData":null,"_pendingEncoding":"","_readableState":{"awaitDrainWriters":null,"buffer":[],"bufferIndex":0,"highWaterMark":65536,"length":0,"pipes":[]},"_rejectUnauthorized":true,"_requestCert":true,"_secureEstablished":true,"_securePending":false,"_server":null,"_sockname":null,"_tlsOptions":{"isServer":false,"pipe":false,"rejectUnauthorized":true,"requestCert":true,"secureContext":{"context":{}}},"_writableState":{"bufferedIndex":0,"corked":0,"highWaterMark":65536,"length":0,"pendingcb":0,"writelen":0},"allowHalfOpen":false,"alpnProtocol":false,"authorizationError":null,"authorized":true,"connecting":false,"encrypted":true,"secureConnecting":false,"servername":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","ssl":null}},"connectionParameters":{"binary":false,"client_encoding":"","connect_timeout":10,"database":"neondb","host":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","idle_in_transaction_session_timeout":false,"isDomainSocket":false,"lock_timeout":false,"port":5432,"query_timeout":false,"ssl":{},"statement_timeout":false,"user":"neondb_owner"},"connectionTimeoutHandle":{"_destroyed":true,"_idleNext":null,"_idlePrev":null,"_idleStart":405263,"_idleTimeout":-1,"_onTimeout":null,"_repeat":null},"database":"neondb","enableChannelBinding":false,"hasExecuted":true,"host":"ep-nameless-lake-amdbfhym.c-5.us-east-1.aws.neon.tech","port":5432,"processID":-1182562049,"readyForQuery":true,"saslSession":null,"secretKey":-438720114,"ssl":{},"user":"neondb_owner"},"code":"ETIMEDOUT","errno":-60,"level":"error","message":"Unexpected error on idle PostgreSQL client read ETIMEDOUT","stack":"Error: read ETIMEDOUT\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:216:20)","syscall":"read","timestamp":"2026-04-23 20:15:33"} diff --git a/workers/logs/error/error-2026-04-24.log b/workers/logs/error/error-2026-04-24.log deleted file mode 100644 index e69de29..0000000 diff --git a/workers/logs/error/error-2026-04-25.log b/workers/logs/error/error-2026-04-25.log deleted file mode 100644 index e69de29..0000000 From 7bc78d4e6137f129bb1332d27aab363f1d62e7a5 Mon Sep 17 00:00:00 2001 From: Kmadhav824 Date: Sun, 26 Apr 2026 23:42:17 +0530 Subject: [PATCH 2/4] Updated gitignore for neglecting logs and stale artifacts --- .gitignore | 42 ++- Frontend/.gitignore | 6 +- backend/.gitignore | 12 +- backend/src/loaders/postgres.ts | 2 +- db-schema/pnpm-lock.yaml | 26 -- workers/.gitignore | 23 ++ workers/pnpm-lock.yaml | 486 ++++++++++++++++++++++++++++++-- 7 files changed, 529 insertions(+), 68 deletions(-) create mode 100644 workers/.gitignore diff --git a/.gitignore b/.gitignore index 980bd7a..fba658f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,34 @@ -node_modules -# Keep environment variables out of version control +# Dependencies +node_modules/ +**/node_modules/ +.pnpm-store/ + +# Environment and secrets .env +.env.* +!.env.example +!.env.*.example + +# Logs and runtime files +logs/ +**/logs/ +*.log +*.pid +*.seed +*.pid.lock +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Build/test output +dist/ +build/ +coverage/ +*.tsbuildinfo + +# OS / editor local files .DS_Store -workers/node_modules -backend/node_modules -frontend/node_modules -.DS_Store -.env -.pnpm-store -.DS_Store -.codex \ No newline at end of file +.codex +.vscode/ +.idea/ diff --git a/Frontend/.gitignore b/Frontend/.gitignore index b8dfc31..4c02682 100644 --- a/Frontend/.gitignore +++ b/Frontend/.gitignore @@ -12,6 +12,10 @@ dist dist-ssr *.local .env +.env.* +!.env.example +!.env.*.example +coverage/ # Editor directories and files .vscode/* @@ -24,4 +28,4 @@ dist-ssr *.sln *.sw? -.DS_Store \ No newline at end of file +.DS_Store diff --git a/backend/.gitignore b/backend/.gitignore index 3224a90..c50b13f 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -141,4 +141,14 @@ dist # SvelteKit build / generate output .svelte-kit -# End of https://www.toptal.com/developers/gitignore/api/node \ No newline at end of file +# End of https://www.toptal.com/developers/gitignore/api/node + +# CodeSM backend local-only files +.env +.env.* +!.env.example +logs/ +scratch/ +dist/ +node_modules/ +*.log diff --git a/backend/src/loaders/postgres.ts b/backend/src/loaders/postgres.ts index 7b0ac12..38772eb 100644 --- a/backend/src/loaders/postgres.ts +++ b/backend/src/loaders/postgres.ts @@ -1,7 +1,7 @@ import { Pool } from 'pg'; import { drizzle } from 'drizzle-orm/node-postgres'; import logger from './logger'; -import { schema } from 'db-schema'; +import { schema } from '../../../db-schema/src/index'; function createDrizzle(pool: Pool) { return drizzle(pool, { schema }); diff --git a/db-schema/pnpm-lock.yaml b/db-schema/pnpm-lock.yaml index bd02691..511662c 100644 --- a/db-schema/pnpm-lock.yaml +++ b/db-schema/pnpm-lock.yaml @@ -14,13 +14,6 @@ importers: drizzle-orm: specifier: ^0.44.0 version: 0.44.0 - devDependencies: - '@types/node': - specifier: ^25.6.0 - version: 25.6.0 - typescript: - specifier: ^6.0.3 - version: 6.0.3 packages: @@ -32,9 +25,6 @@ packages: resolution: {integrity: sha512-OqiFvSOF0dBSesELYY2CAMa4YINvlLpvKOz/rv6NeZEqiyttlHgv98Juwv4Ch+GrEV7IZ8jfI2VcEoYUjXXCjw==} hasBin: true - '@types/node@25.6.0': - resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} - bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} @@ -133,14 +123,6 @@ packages: error-causes@3.0.2: resolution: {integrity: sha512-i0B8zq1dHL6mM85FGoxaJnVtx6LD5nL2v0hlpGdntg5FOSyzQ46c9lmz5qx0xRS2+PWHGOHcYxGIBC5Le2dRMw==} - typescript@6.0.3: - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@7.19.2: - resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} - snapshots: '@noble/hashes@2.2.0': {} @@ -151,16 +133,8 @@ snapshots: bignumber.js: 9.3.1 error-causes: 3.0.2 - '@types/node@25.6.0': - dependencies: - undici-types: 7.19.2 - bignumber.js@9.3.1: {} drizzle-orm@0.44.0: {} error-causes@3.0.2: {} - - typescript@6.0.3: {} - - undici-types@7.19.2: {} diff --git a/workers/.gitignore b/workers/.gitignore new file mode 100644 index 0000000..e07f60c --- /dev/null +++ b/workers/.gitignore @@ -0,0 +1,23 @@ +# Dependencies +node_modules/ + +# Environment and secrets +.env +.env.* +!.env.example +!.env.*.example + +# Logs and runtime files +logs/ +*.log +*.pid + +# Build and coverage artifacts +dist/ +coverage/ +*.tsbuildinfo + +# OS/editor files +.DS_Store +.vscode/ +.idea/ diff --git a/workers/pnpm-lock.yaml b/workers/pnpm-lock.yaml index 35eb5b7..618f90b 100644 --- a/workers/pnpm-lock.yaml +++ b/workers/pnpm-lock.yaml @@ -11,21 +11,33 @@ importers: '@aws-sdk/client-s3': specifier: ^3.864.0 version: 3.1019.0 - bull: - specifier: ^4.16.5 - version: 4.16.5 + bullmq: + specifier: ^5.76.1 + version: 5.76.2 db-schema: specifier: file:../db-schema - version: file:../db-schema + version: file:../db-schema(pg@8.20.0) dotenv: specifier: ^17.4.2 version: 17.4.2 + drizzle-orm: + specifier: ^0.45.2 + version: 0.45.2(pg@8.20.0) ioredis: specifier: ^5.7.0 version: 5.10.1 mongoose: specifier: ^9.3.3 version: 9.3.3 + pg: + specifier: ^8.20.0 + version: 8.20.0 + winston: + specifier: ^3.19.0 + version: 3.19.0 + winston-daily-rotate-file: + specifier: ^5.0.0 + version: 5.0.0(winston@3.19.0) yup: specifier: ^1.7.1 version: 1.7.1 @@ -191,6 +203,13 @@ packages: resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} engines: {node: '>=18.0.0'} + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} + '@ioredis/commands@1.5.1': resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==} @@ -451,12 +470,21 @@ packages: resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} engines: {node: '>=18.0.0'} + '@so-ric/colorspace@1.1.6': + resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + '@types/webidl-conversions@7.0.3': resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} '@types/whatwg-url@13.0.0': resolution: {integrity: sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} @@ -467,14 +495,30 @@ packages: resolution: {integrity: sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==} engines: {node: '>=20.19.0'} - bull@4.16.5: - resolution: {integrity: sha512-lDsx2BzkKe7gkCYiT5Acj02DpTwDznl/VNN7Psn7M3USPG7Vs/BaClZJJTAG+ufAR9++N1/NiUTdaFBWDIl5TQ==} - engines: {node: '>=12'} + bullmq@5.76.2: + resolution: {integrity: sha512-kkNU6TPAjqV3Ep0kIaYhT79Z2IMoA7vadqjmr/zvmPicg0K/cOAecqZTihD726LbI043yPU0MBv/nMQmd5rNIg==} + engines: {node: '>=12.22.0'} cluster-key-slot@1.1.2: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} + color-convert@3.1.3: + resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} + engines: {node: '>=14.6'} + + color-name@2.1.0: + resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} + engines: {node: '>=12.20'} + + color-string@2.1.4: + resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} + engines: {node: '>=18'} + + color@5.0.3: + resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} + engines: {node: '>=18'} + cron-parser@4.9.0: resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} engines: {node: '>=12.0.0'} @@ -595,6 +639,101 @@ packages: sqlite3: optional: true + drizzle-orm@0.45.2: + resolution: {integrity: sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=4' + '@electric-sql/pglite': '>=0.2.0' + '@libsql/client': '>=0.10.0' + '@libsql/client-wasm': '>=0.10.0' + '@neondatabase/serverless': '>=0.10.0' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1.13' + '@prisma/client': '*' + '@tidbcloud/serverless': '*' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/sql.js': '*' + '@upstash/redis': '>=1.34.7' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=14.0.0' + gel: '>=2' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + prisma: '*' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@libsql/client-wasm': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@prisma/client': + optional: true + '@tidbcloud/serverless': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/sql.js': + optional: true + '@upstash/redis': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + gel: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + prisma: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + error-causes@3.0.2: resolution: {integrity: sha512-i0B8zq1dHL6mM85FGoxaJnVtx6LD5nL2v0hlpGdntg5FOSyzQ46c9lmz5qx0xRS2+PWHGOHcYxGIBC5Le2dRMw==} @@ -605,26 +744,42 @@ packages: resolution: {integrity: sha512-Z7Fh2nVQSb2d+poDViM063ix2ZGt9jmY1nWhPfHBOK2Hgnb/OW3P4Et3P/81SEej0J7QbWtJqxO05h8QYfK7LQ==} hasBin: true - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + file-stream-rotator@0.6.1: + resolution: {integrity: sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ioredis@5.10.1: resolution: {integrity: sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==} engines: {node: '>=12.22.0'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + kareem@3.2.0: resolution: {integrity: sha512-VS8MWZz/cT+SqBCpVfNN4zoVz5VskR3N4+sTmUXme55e9avQHntpwpNq0yjnosISXqwJ3AQVjlbI4Dyzv//JtA==} engines: {node: '>=18.0.0'} + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + logform@2.7.0: + resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} + engines: {node: '>= 12.0.0'} luxon@3.7.2: resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} @@ -633,6 +788,9 @@ packages: memory-pager@1.5.0: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + mongodb-connection-string-url@7.0.1: resolution: {integrity: sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==} engines: {node: '>=20.19.0'} @@ -683,17 +841,77 @@ packages: resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} hasBin: true - msgpackr@1.11.9: - resolution: {integrity: sha512-FkoAAyyA6HM8wL882EcEyFZ9s7hVADSwG9xrVx3dxxNQAtgADTrJoEWivID82Iv1zWDsv/OtbrrcZAzGzOMdNw==} + msgpackr@1.11.5: + resolution: {integrity: sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==} + + node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} node-gyp-build-optional-packages@5.2.2: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + path-expression-matcher@1.2.0: resolution: {integrity: sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==} engines: {node: '>=14.0.0'} + pg-cloudflare@1.3.0: + resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} + + pg-connection-string@2.12.0: + resolution: {integrity: sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.13.0: + resolution: {integrity: sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.13.0: + resolution: {integrity: sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.20.0: + resolution: {integrity: sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.1: + resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + property-expr@2.0.6: resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} @@ -701,6 +919,10 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} @@ -709,6 +931,13 @@ packages: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -720,12 +949,25 @@ packages: sparse-bitfield@3.0.3: resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + strnum@2.2.2: resolution: {integrity: sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA==} + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + tiny-case@1.0.3: resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} @@ -736,6 +978,10 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -743,9 +989,8 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} @@ -755,6 +1000,24 @@ packages: resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} engines: {node: '>=18'} + winston-daily-rotate-file@5.0.0: + resolution: {integrity: sha512-JDjiXXkM5qvwY06733vf09I2wnMXpZEhxEVOSPenZMii+g7pcDcTBt2MRugnoi8BwVSuCT2jfRXBUy+n1Zz/Yw==} + engines: {node: '>=8'} + peerDependencies: + winston: ^3 + + winston-transport@4.9.0: + resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} + engines: {node: '>= 12.0.0'} + + winston@3.19.0: + resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} + engines: {node: '>= 12.0.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + yup@1.7.1: resolution: {integrity: sha512-GKHFX2nXul2/4Dtfxhozv701jLQHdf6J34YDh2cEkpqoo8le5Mg6/LrdseVLrFarmFygZTlfIhHx/QKfb/QWXw==} @@ -1204,6 +1467,14 @@ snapshots: '@aws/lambda-invoke-store@0.2.4': {} + '@colors/colors@1.6.0': {} + + '@dabh/diagnostics@2.0.8': + dependencies: + '@so-ric/colorspace': 1.1.6 + enabled: 2.0.0 + kuler: 2.0.0 + '@ioredis/commands@1.5.1': {} '@mongodb-js/saslprep@1.4.6': @@ -1575,40 +1846,63 @@ snapshots: dependencies: tslib: 2.8.1 + '@so-ric/colorspace@1.1.6': + dependencies: + color: 5.0.3 + text-hex: 1.0.0 + + '@types/triple-beam@1.3.5': {} + '@types/webidl-conversions@7.0.3': {} '@types/whatwg-url@13.0.0': dependencies: '@types/webidl-conversions': 7.0.3 + async@3.2.6: {} + bignumber.js@9.3.1: {} bowser@2.14.1: {} bson@7.2.0: {} - bull@4.16.5: + bullmq@5.76.2: dependencies: cron-parser: 4.9.0 - get-port: 5.1.1 ioredis: 5.10.1 - lodash: 4.17.23 - msgpackr: 1.11.9 + msgpackr: 1.11.5 + node-abort-controller: 3.1.1 semver: 7.7.4 - uuid: 8.3.2 + tslib: 2.8.1 transitivePeerDependencies: - supports-color cluster-key-slot@1.1.2: {} + color-convert@3.1.3: + dependencies: + color-name: 2.1.0 + + color-name@2.1.0: {} + + color-string@2.1.4: + dependencies: + color-name: 2.1.0 + + color@5.0.3: + dependencies: + color-convert: 3.1.3 + color-string: 2.1.4 + cron-parser@4.9.0: dependencies: luxon: 3.7.2 - db-schema@file:../db-schema: + db-schema@file:../db-schema(pg@8.20.0): dependencies: '@paralleldrive/cuid2': 3.3.0 - drizzle-orm: 0.44.7 + drizzle-orm: 0.44.7(pg@8.20.0) transitivePeerDependencies: - '@aws-sdk/client-rds-data' - '@cloudflare/workers-types' @@ -1651,7 +1945,15 @@ snapshots: dotenv@17.4.2: {} - drizzle-orm@0.44.7: {} + drizzle-orm@0.44.7(pg@8.20.0): + optionalDependencies: + pg: 8.20.0 + + drizzle-orm@0.45.2(pg@8.20.0): + optionalDependencies: + pg: 8.20.0 + + enabled@2.0.0: {} error-causes@3.0.2: {} @@ -1665,7 +1967,15 @@ snapshots: path-expression-matcher: 1.2.0 strnum: 2.2.2 - get-port@5.1.1: {} + fecha@4.2.3: {} + + file-stream-rotator@0.6.1: + dependencies: + moment: 2.30.1 + + fn.name@1.1.0: {} + + inherits@2.0.4: {} ioredis@5.10.1: dependencies: @@ -1681,18 +1991,31 @@ snapshots: transitivePeerDependencies: - supports-color + is-stream@2.0.1: {} + kareem@3.2.0: {} + kuler@2.0.0: {} + lodash.defaults@4.2.0: {} lodash.isarguments@3.1.0: {} - lodash@4.17.23: {} + logform@2.7.0: + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.5.0 + triple-beam: 1.4.1 luxon@3.7.2: {} memory-pager@1.5.0: {} + moment@2.30.1: {} + mongodb-connection-string-url@7.0.1: dependencies: '@types/whatwg-url': 13.0.0 @@ -1739,27 +2062,90 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 optional: true - msgpackr@1.11.9: + msgpackr@1.11.5: optionalDependencies: msgpackr-extract: 3.0.3 + node-abort-controller@3.1.1: {} + node-gyp-build-optional-packages@5.2.2: dependencies: detect-libc: 2.1.2 optional: true + object-hash@3.0.0: {} + + one-time@1.0.0: + dependencies: + fn.name: 1.1.0 + path-expression-matcher@1.2.0: {} + pg-cloudflare@1.3.0: + optional: true + + pg-connection-string@2.12.0: {} + + pg-int8@1.0.1: {} + + pg-pool@3.13.0(pg@8.20.0): + dependencies: + pg: 8.20.0 + + pg-protocol@1.13.0: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.1 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg@8.20.0: + dependencies: + pg-connection-string: 2.12.0 + pg-pool: 3.13.0(pg@8.20.0) + pg-protocol: 1.13.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.3.0 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + + postgres-array@2.0.0: {} + + postgres-bytea@1.0.1: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + property-expr@2.0.6: {} punycode@2.3.1: {} + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + redis-errors@1.2.0: {} redis-parser@3.0.0: dependencies: redis-errors: 1.2.0 + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.5.0: {} + semver@7.7.4: {} sift@17.1.3: {} @@ -1768,10 +2154,20 @@ snapshots: dependencies: memory-pager: 1.5.0 + split2@4.2.0: {} + + stack-trace@0.0.10: {} + standard-as-callback@2.1.0: {} + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + strnum@2.2.2: {} + text-hex@1.0.0: {} + tiny-case@1.0.3: {} toposort@2.0.2: {} @@ -1780,11 +2176,13 @@ snapshots: dependencies: punycode: 2.3.1 + triple-beam@1.4.1: {} + tslib@2.8.1: {} type-fest@2.19.0: {} - uuid@8.3.2: {} + util-deprecate@1.0.2: {} webidl-conversions@7.0.0: {} @@ -1793,6 +2191,36 @@ snapshots: tr46: 5.1.1 webidl-conversions: 7.0.0 + winston-daily-rotate-file@5.0.0(winston@3.19.0): + dependencies: + file-stream-rotator: 0.6.1 + object-hash: 3.0.0 + triple-beam: 1.4.1 + winston: 3.19.0 + winston-transport: 4.9.0 + + winston-transport@4.9.0: + dependencies: + logform: 2.7.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + + winston@3.19.0: + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.8 + async: 3.2.6 + is-stream: 2.0.1 + logform: 2.7.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.5.0 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.9.0 + + xtend@4.0.2: {} + yup@1.7.1: dependencies: property-expr: 2.0.6 From 8e409f0d4b6c63097130b3d2649c5dec3dedc352 Mon Sep 17 00:00:00 2001 From: Kmadhav824 Date: Mon, 27 Apr 2026 02:57:56 +0530 Subject: [PATCH 3/4] Added Migration Scripts --- .../migrate-mongo-problems-to-postgres.js | 337 +++++++++++++++ .../migrate-mongo-submissions-to-postgres.js | 409 ++++++++++++++++++ .../migrate-mongo-users-to-postgres.js | 239 ++++++++++ 3 files changed, 985 insertions(+) create mode 100644 backend/src/scripts/migrate-mongo-problems-to-postgres.js create mode 100644 backend/src/scripts/migrate-mongo-submissions-to-postgres.js create mode 100644 backend/src/scripts/migrate-mongo-users-to-postgres.js diff --git a/backend/src/scripts/migrate-mongo-problems-to-postgres.js b/backend/src/scripts/migrate-mongo-problems-to-postgres.js new file mode 100644 index 0000000..8142e6f --- /dev/null +++ b/backend/src/scripts/migrate-mongo-problems-to-postgres.js @@ -0,0 +1,337 @@ +import dotenv from "dotenv"; +import mongoose from "mongoose"; +import { Pool } from "pg"; +import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"; +import { createId } from "@paralleldrive/cuid2"; + +dotenv.config(); + +const MONGO_URI = process.env.MONGO_URI; +const MONGO_DB_NAME = process.env.MONGO_DB_NAME || "codesm"; +const DATABASE_URL = process.env.DATABASE_URL; +const FORCED_AUTHOR_ID = process.env.PG_AUTHOR_ID; +const SKIP_S3_UPLOAD = process.env.SKIP_S3_UPLOAD === "true"; + +function assertEnv() { + if (!MONGO_URI) { + throw new Error("MONGO_URI is required"); + } + if (!DATABASE_URL) { + throw new Error("DATABASE_URL is required"); + } +} + +function mapDifficulty(value) { + const n = Number(value); + if (Number.isNaN(n)) return "EASY"; + if (n <= 1200) return "EASY"; + if (n <= 1600) return "MEDIUM"; + if (n <= 2100) return "HARD"; + return "EXPERT"; +} + +function slugify(input) { + return String(input || "") + .toLowerCase() + .trim() + .replace(/[^a-z0-9\s-]/g, "") + .replace(/\s+/g, "-") + .replace(/-+/g, "-") + .replace(/^-|-$/g, ""); +} + +function normalizeTags(tags) { + if (!Array.isArray(tags)) return []; + const exploded = []; + for (const raw of tags) { + if (raw == null) continue; + const parts = String(raw).split(","); + for (const part of parts) { + const cleaned = part + .replace(/^"+|"+$/g, "") + .replace(/^'+|'+$/g, "") + .trim() + .toLowerCase(); + if (cleaned) exploded.push(cleaned); + } + } + return [...new Set(exploded)]; +} + +function makeS3Client() { + const { AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_BUCKET_NAME } = + process.env; + + const canUpload = + !SKIP_S3_UPLOAD && + Boolean(AWS_REGION) && + Boolean(AWS_ACCESS_KEY_ID) && + Boolean(AWS_SECRET_ACCESS_KEY) && + Boolean(AWS_BUCKET_NAME); + + if (!canUpload) { + return { canUpload: false, s3: null, bucket: null }; + } + + const s3 = new S3Client({ + region: AWS_REGION, + credentials: { + accessKeyId: AWS_ACCESS_KEY_ID, + secretAccessKey: AWS_SECRET_ACCESS_KEY, + }, + }); + + return { canUpload: true, s3, bucket: AWS_BUCKET_NAME }; +} + +async function uploadTextToS3(s3, bucket, key, body, contentType) { + await s3.send( + new PutObjectCommand({ + Bucket: bucket, + Key: key, + Body: body, + ContentType: contentType, + }), + ); +} + +async function resolveAuthorId(client) { + if (FORCED_AUTHOR_ID) { + const found = await client.query('select id from "user" where id = $1 limit 1', [ + FORCED_AUTHOR_ID, + ]); + if (found.rowCount === 0) { + throw new Error(`PG_AUTHOR_ID not found in "user": ${FORCED_AUTHOR_ID}`); + } + return FORCED_AUTHOR_ID; + } + + const preferred = await client.query( + `select id + from "user" + where role in ('AUTHOR', 'ADMIN') + order by created_at asc + limit 1`, + ); + if (preferred.rowCount && preferred.rows[0]?.id) { + return preferred.rows[0].id; + } + + const fallback = await client.query( + 'select id from "user" order by created_at asc limit 1', + ); + if (fallback.rowCount && fallback.rows[0]?.id) { + return fallback.rows[0].id; + } + + throw new Error( + 'No users found in Postgres. Create at least one user, or set PG_AUTHOR_ID explicitly.', + ); +} + +async function upsertProblemData(client, doc, authorId, s3Ctx) { + const problemId = String(doc._id); + const baseSlug = slugify(doc.title); + const slug = doc.slug ? String(doc.slug) : `${baseSlug}-${problemId.slice(-6)}`; + const createdAt = doc.createdAt ? new Date(doc.createdAt) : new Date(); + const updatedAt = doc.updatedAt ? new Date(doc.updatedAt) : new Date(); + const difficulty = mapDifficulty(doc.difficulty); + const finalStatus = s3Ctx.canUpload ? "DONE" : "DRAFT"; + + const contentKey = `problems/${problemId}/content.md`; + const solutionKey = `problems/${problemId}/solution.md`; + + await client.query( + `insert into problem ( + id, title, description, slug, difficulty, author_id, + input_format, output_format, constraints, status, time_limit, memory_limit, + created_at, updated_at + ) + values ( + $1, $2, $3, $4, $5::"Difficulty", $6, + $7, $8, $9, $10::"ProblemStatus", $11, $12, + $13, $14 + ) + on conflict (id) do update set + title = excluded.title, + description = excluded.description, + slug = excluded.slug, + difficulty = excluded.difficulty, + author_id = excluded.author_id, + input_format = excluded.input_format, + output_format = excluded.output_format, + constraints = excluded.constraints, + status = excluded.status, + time_limit = excluded.time_limit, + memory_limit = excluded.memory_limit, + updated_at = excluded.updated_at`, + [ + problemId, + doc.title || "Untitled Problem", + doc.description || "", + slug || `problem-${problemId.slice(-6)}`, + difficulty, + authorId, + doc.inputFormat || "", + doc.outputFormat || "", + doc.constraints || "", + finalStatus, + Number(doc.timeLimit || 1), + Number(doc.memoryLimit || 256), + createdAt, + updatedAt, + ], + ); + + await client.query("delete from problem_tag where problem_id = $1", [problemId]); + await client.query("delete from hint where problem_id = $1", [problemId]); + await client.query("delete from testcase where problem_id = $1", [problemId]); + + const normalizedTags = normalizeTags(doc.tags); + for (const tagName of normalizedTags) { + const tagIdCandidate = createId(); + const tagRes = await client.query( + `insert into tag (id, name) + values ($1, $2) + on conflict (name) do update set name = excluded.name + returning id`, + [tagIdCandidate, tagName], + ); + const tagId = tagRes.rows[0].id; + await client.query( + `insert into problem_tag (problem_id, tag_id) + values ($1, $2) + on conflict do nothing`, + [problemId, tagId], + ); + } + + const hints = Array.isArray(doc.hints) ? doc.hints : []; + for (let i = 0; i < hints.length; i += 1) { + const h = hints[i] || {}; + await client.query( + `insert into hint (id, problem_id, "order", title, content, created_at, updated_at) + values ($1, $2, $3, $4, $5, $6, $7)`, + [ + createId(), + problemId, + i + 1, + String(h.title || `Hint ${i + 1}`), + String(h.content || ""), + createdAt, + updatedAt, + ], + ); + } + + if (s3Ctx.canUpload) { + await uploadTextToS3( + s3Ctx.s3, + s3Ctx.bucket, + contentKey, + String(doc.editorial || ""), + "text/markdown", + ); + await uploadTextToS3( + s3Ctx.s3, + s3Ctx.bucket, + solutionKey, + String(doc.solution || ""), + "text/plain", + ); + + const sampleTestcases = Array.isArray(doc.sampleTestcases) ? doc.sampleTestcases : []; + for (let i = 0; i < sampleTestcases.length; i += 1) { + const tc = sampleTestcases[i] || {}; + const tcKey = `problems/${problemId}/sampleTestcase_${i}.json`; + await uploadTextToS3( + s3Ctx.s3, + s3Ctx.bucket, + tcKey, + JSON.stringify( + { + input: String(tc.input || ""), + output: String(tc.output || ""), + }, + null, + 2, + ), + "application/json", + ); + + await client.query( + `insert into testcase (id, problem_id, s3_key, is_sample, is_hidden, "order", batch, created_at) + values ($1, $2, $3, true, false, $4, 0, $5)`, + [createId(), problemId, tcKey, i, createdAt], + ); + } + } + + await client.query( + `insert into editorial (id, problem_id, content_s3_key, solution_s3_key, editorial_link, created_at, updated_at) + values ($1, $2, $3, $4, $5, $6, $7) + on conflict (problem_id) do update set + content_s3_key = excluded.content_s3_key, + solution_s3_key = excluded.solution_s3_key, + editorial_link = excluded.editorial_link, + updated_at = excluded.updated_at`, + [ + createId(), + problemId, + contentKey, + solutionKey, + doc.editorialLink ? String(doc.editorialLink) : null, + createdAt, + updatedAt, + ], + ); +} + +async function main() { + assertEnv(); + + const s3Ctx = makeS3Client(); + console.log( + s3Ctx.canUpload + ? "S3 upload mode: enabled (problems will be migrated as DONE)" + : "S3 upload mode: disabled (problems will be migrated as DRAFT)", + ); + + await mongoose.connect(MONGO_URI, { dbName: MONGO_DB_NAME }); + const mongoDb = mongoose.connection.db; + const mongoProblems = await mongoDb.collection("problems").find({}).toArray(); + console.log(`Mongo problems found: ${mongoProblems.length}`); + + const pool = new Pool({ connectionString: DATABASE_URL }); + const client = await pool.connect(); + + try { + const authorId = await resolveAuthorId(client); + console.log(`Using Postgres author_id: ${authorId}`); + + let migrated = 0; + for (const doc of mongoProblems) { + try { + await client.query("begin"); + await upsertProblemData(client, doc, authorId, s3Ctx); + await client.query("commit"); + migrated += 1; + console.log(`Migrated: ${doc.title} (${String(doc._id)})`); + } catch (err) { + await client.query("rollback"); + console.error(`Failed: ${doc?.title || doc?._id}`, err.message); + } + } + + console.log(`Migration complete. Success: ${migrated}/${mongoProblems.length}`); + } finally { + client.release(); + await pool.end(); + await mongoose.disconnect(); + } +} + +main().catch((err) => { + console.error("Migration failed:", err); + process.exitCode = 1; +}); diff --git a/backend/src/scripts/migrate-mongo-submissions-to-postgres.js b/backend/src/scripts/migrate-mongo-submissions-to-postgres.js new file mode 100644 index 0000000..1b90646 --- /dev/null +++ b/backend/src/scripts/migrate-mongo-submissions-to-postgres.js @@ -0,0 +1,409 @@ +import dotenv from "dotenv"; +import mongoose from "mongoose"; +import { Pool } from "pg"; +import { createId } from "@paralleldrive/cuid2"; + +dotenv.config(); + +const MONGO_URI = process.env.MONGO_URI; +const MONGO_DB_NAME = process.env.MONGO_DB_NAME || "codesm"; +const DATABASE_URL = process.env.DATABASE_URL; +const SUBMISSIONS_COLLECTION = process.env.MONGO_SUBMISSIONS_COLLECTION || "submissions"; +const FORCED_USER_ID = process.env.PG_SUBMISSION_USER_ID || null; + +const LANGUAGE_SET = new Set(["CPP", "JAVA", "PYTHON", "JAVASCRIPT", "C", "CSHARP"]); +const STATUS_SET = new Set(["PENDING", "RUNNING", "FAILED", "COMPLETED"]); +const MODE_SET = new Set(["SUBMIT", "RUN"]); +const VERDICT_SET = new Set([ + "PENDING", + "ACCEPTED", + "WRONG_ANSWER", + "TIME_LIMIT_EXCEEDED", + "MEMORY_LIMIT_EXCEEDED", + "RUNTIME_ERROR", + "COMPILE_ERROR", +]); + +function assertEnv() { + if (!MONGO_URI) throw new Error("MONGO_URI is required"); + if (!DATABASE_URL) throw new Error("DATABASE_URL is required"); +} + +function toStr(value) { + if (value == null) return null; + if (typeof value === "string") return value; + if (typeof value === "number" || typeof value === "boolean") return String(value); + if (value?._id != null) return String(value._id); + return String(value); +} + +function getPath(obj, path) { + return path.split(".").reduce((acc, key) => (acc == null ? undefined : acc[key]), obj); +} + +function pickFirst(obj, paths) { + for (const path of paths) { + const value = getPath(obj, path); + if (value !== undefined && value !== null) return value; + } + return undefined; +} + +function normalizeUpper(value) { + return String(value || "") + .trim() + .toUpperCase() + .replace(/[\s-]+/g, "_"); +} + +function mapLanguage(value) { + const raw = normalizeUpper(value).replace(/\+/g, "P"); + + const direct = { + CPP: "CPP", + CXX: "CPP", + CPLUSPLUS: "CPP", + C_P_P: "CPP", + JAVA: "JAVA", + PY: "PYTHON", + PY3: "PYTHON", + PYTHON: "PYTHON", + JS: "JAVASCRIPT", + JAVASCRIPT: "JAVASCRIPT", + NODE: "JAVASCRIPT", + C: "C", + CSHARP: "CSHARP", + C_SHARP: "CSHARP", + CS: "CSHARP", + }; + + const mapped = direct[raw] || direct[raw.replace(/[^A-Z_]/g, "")]; + return LANGUAGE_SET.has(mapped) ? mapped : "CPP"; +} + +function mapMode(value) { + const raw = normalizeUpper(value); + if (MODE_SET.has(raw)) return raw; + if (raw === "PRACTICE") return "RUN"; + return "SUBMIT"; +} + +function mapStatus(value, verdict) { + const raw = normalizeUpper(value); + if (STATUS_SET.has(raw)) return raw; + + if (raw === "QUEUED") return "PENDING"; + if (raw === "ACCEPTED") return "COMPLETED"; + if (raw === "SUCCESS") return "COMPLETED"; + if (raw === "ERROR") return "FAILED"; + if (raw === "TIMEOUT") return "FAILED"; + if (raw === "CANCELLED") return "FAILED"; + + if (verdict && verdict !== "PENDING") return "COMPLETED"; + return "PENDING"; +} + +function mapVerdict(value, status, total, passed, failed) { + const raw = normalizeUpper(value); + const alias = { + WA: "WRONG_ANSWER", + TLE: "TIME_LIMIT_EXCEEDED", + MLE: "MEMORY_LIMIT_EXCEEDED", + RE: "RUNTIME_ERROR", + CE: "COMPILE_ERROR", + OK: "ACCEPTED", + PASS: "ACCEPTED", + PASSED: "ACCEPTED", + SUCCESS: "ACCEPTED", + ERROR: "RUNTIME_ERROR", + COMPILATION_ERROR: "COMPILE_ERROR", + }; + + const mapped = VERDICT_SET.has(raw) ? raw : alias[raw]; + if (VERDICT_SET.has(mapped)) return mapped; + + if (status === "FAILED") return "RUNTIME_ERROR"; + + if (Number(total) > 0) { + if (Number(failed) === 0 && Number(passed) === Number(total)) return "ACCEPTED"; + if (Number(failed) > 0) return "WRONG_ANSWER"; + } + + return "PENDING"; +} + +function toInt(value, fallback = 0) { + const n = Number(value); + return Number.isFinite(n) ? Math.max(0, Math.trunc(n)) : fallback; +} + +async function existsById(client, tableName, id) { + const res = await client.query(`select 1 from "${tableName}" where id = $1 limit 1`, [id]); + return res.rowCount > 0; +} + +async function resolveFallbackUser(client) { + if (FORCED_USER_ID) { + const ok = await existsById(client, "user", FORCED_USER_ID); + if (!ok) { + throw new Error(`PG_SUBMISSION_USER_ID not found in "user": ${FORCED_USER_ID}`); + } + return FORCED_USER_ID; + } + return null; +} + +function extractSubmission(doc) { + const submissionId = toStr(doc._id) || createId(); + const mongoUserId = toStr( + pickFirst(doc, ["userId", "user", "author", "submittedBy", "user._id"]), + ); + const problemId = toStr(pickFirst(doc, ["problemId", "problem", "problem._id"])); + + const code = String(pickFirst(doc, ["code", "sourceCode", "program"]) || ""); + const language = mapLanguage(pickFirst(doc, ["language", "lang"])); + const mode = mapMode(pickFirst(doc, ["mode", "submissionMode", "type"])); + + const totalTestcases = toInt( + pickFirst(doc, ["totalTestcases", "totalTestCases", "results.total", "summary.total"]), + ); + const passedTestcases = toInt( + pickFirst(doc, ["passedTestcases", "passedTestCases", "results.passed", "summary.passed"]), + ); + const failedTestcases = toInt( + pickFirst(doc, ["failedTestcases", "failedTestCases", "results.failed", "summary.failed"]), + ); + const timeTaken = toInt(pickFirst(doc, ["timeTaken", "time", "metrics.time"])); + const memoryTaken = toInt(pickFirst(doc, ["memoryTaken", "memory", "metrics.memory"])); + + const nestedExecution = + pickFirst(doc, ["executionResult", "execution", "result"]) || + (Array.isArray(doc.executionResults) ? doc.executionResults[0] : undefined); + + const tentativeVerdict = mapVerdict( + pickFirst(doc, [ + "verdict", + "result.verdict", + "executionResult.verdict", + "execution.verdict", + ]), + null, + totalTestcases, + passedTestcases, + failedTestcases, + ); + + const status = mapStatus( + pickFirst(doc, ["status", "result.status", "executionResult.status"]), + tentativeVerdict, + ); + const verdict = mapVerdict( + pickFirst(doc, [ + "verdict", + "result.verdict", + "executionResult.verdict", + "execution.verdict", + ]), + status, + totalTestcases, + passedTestcases, + failedTestcases, + ); + + const stdout = toStr( + pickFirst(doc, [ + "stdout", + "result.stdout", + "executionResult.stdout", + "execution.stdout", + "result.output", + "output", + "compileOutput", + ]), + ); + const stderr = toStr( + pickFirst(doc, [ + "stderr", + "result.stderr", + "executionResult.stderr", + "execution.stderr", + "error", + "errorMessage", + "compileError", + ]), + ); + + const createdAt = doc.createdAt ? new Date(doc.createdAt) : new Date(); + const updatedAt = doc.updatedAt ? new Date(doc.updatedAt) : createdAt; + + const nestedVerdict = nestedExecution + ? mapVerdict( + pickFirst(nestedExecution, ["verdict", "status"]), + status, + totalTestcases, + passedTestcases, + failedTestcases, + ) + : verdict; + + return { + submissionId, + mongoUserId, + problemId, + code, + language, + mode, + status, + verdict: nestedVerdict || verdict, + totalTestcases, + passedTestcases, + failedTestcases, + timeTaken, + memoryTaken, + stdout, + stderr, + createdAt, + updatedAt, + }; +} + +async function upsertSubmission(client, data, fallbackUserId) { + const problemId = data.problemId; + if (!problemId) { + return { ok: false, reason: "missing problemId" }; + } + + const problemExists = await existsById(client, "problem", problemId); + if (!problemExists) { + return { ok: false, reason: `problem not found: ${problemId}` }; + } + + let userId = data.mongoUserId; + const userExists = userId ? await existsById(client, "user", userId) : false; + if (!userExists) { + if (!fallbackUserId) { + return { ok: false, reason: `user not found: ${userId || "null"}` }; + } + userId = fallbackUserId; + } + + await client.query( + `insert into submission ( + id, problem_id, user_id, mode, code, language, status, + total_testcases, passed_testcases, failed_testcases, + time_taken, memory_taken, created_at, updated_at + ) + values ( + $1, $2, $3, $4::"SubmissionMode", $5, $6::"Language", $7::"JobStatus", + $8, $9, $10, $11, $12, $13, $14 + ) + on conflict (id) do update set + problem_id = excluded.problem_id, + user_id = excluded.user_id, + mode = excluded.mode, + code = excluded.code, + language = excluded.language, + status = excluded.status, + total_testcases = excluded.total_testcases, + passed_testcases = excluded.passed_testcases, + failed_testcases = excluded.failed_testcases, + time_taken = excluded.time_taken, + memory_taken = excluded.memory_taken, + updated_at = excluded.updated_at`, + [ + data.submissionId, + problemId, + userId, + data.mode, + data.code, + data.language, + data.status, + data.totalTestcases, + data.passedTestcases, + data.failedTestcases, + data.timeTaken, + data.memoryTaken, + data.createdAt, + data.updatedAt, + ], + ); + + await client.query(`delete from execution_result where submission_id = $1`, [data.submissionId]); + await client.query( + `insert into execution_result ( + id, submission_id, verdict, stdout, stderr, created_at, updated_at + ) + values ( + $1, $2, $3::"Verdict", $4, $5, $6, $7 + )`, + [ + createId(), + data.submissionId, + data.verdict, + data.stdout, + data.stderr, + data.createdAt, + data.updatedAt, + ], + ); + + return { ok: true }; +} + +async function main() { + assertEnv(); + + await mongoose.connect(MONGO_URI, { dbName: MONGO_DB_NAME }); + const mongoDb = mongoose.connection.db; + const mongoSubmissions = await mongoDb + .collection(SUBMISSIONS_COLLECTION) + .find({}) + .toArray(); + console.log(`Mongo submissions found: ${mongoSubmissions.length}`); + + const pool = new Pool({ connectionString: DATABASE_URL }); + const client = await pool.connect(); + + try { + const fallbackUserId = await resolveFallbackUser(client); + if (fallbackUserId) { + console.log(`Using fallback Postgres user_id: ${fallbackUserId}`); + } + + let migrated = 0; + let skipped = 0; + + for (const doc of mongoSubmissions) { + const data = extractSubmission(doc); + try { + await client.query("begin"); + const result = await upsertSubmission(client, data, fallbackUserId); + if (!result.ok) { + await client.query("rollback"); + skipped += 1; + console.warn(`Skipped ${data.submissionId}: ${result.reason}`); + continue; + } + await client.query("commit"); + migrated += 1; + } catch (err) { + await client.query("rollback"); + skipped += 1; + console.error(`Failed ${data.submissionId}:`, err.message); + } + } + + console.log( + `Submission migration complete. Success: ${migrated}/${mongoSubmissions.length}, skipped: ${skipped}`, + ); + } finally { + client.release(); + await pool.end(); + await mongoose.disconnect(); + } +} + +main().catch((err) => { + console.error("Submission migration failed:", err); + process.exitCode = 1; +}); diff --git a/backend/src/scripts/migrate-mongo-users-to-postgres.js b/backend/src/scripts/migrate-mongo-users-to-postgres.js new file mode 100644 index 0000000..83f41bd --- /dev/null +++ b/backend/src/scripts/migrate-mongo-users-to-postgres.js @@ -0,0 +1,239 @@ +import dotenv from "dotenv"; +import mongoose from "mongoose"; +import { Pool } from "pg"; +import { createId } from "@paralleldrive/cuid2"; + +dotenv.config(); + +const MONGO_URI = process.env.MONGO_URI; +const MONGO_DB_NAME = process.env.MONGO_DB_NAME || "codesm"; +const DATABASE_URL = process.env.DATABASE_URL; +const USERS_COLLECTION = process.env.MONGO_USERS_COLLECTION || "users"; + +function assertEnv() { + if (!MONGO_URI) throw new Error("MONGO_URI is required"); + if (!DATABASE_URL) throw new Error("DATABASE_URL is required"); +} + +function toStr(value) { + if (value == null) return null; + if (typeof value === "string") return value; + if (typeof value === "number" || typeof value === "boolean") return String(value); + if (value?._id != null) return String(value._id); + return String(value); +} + +function getPath(obj, path) { + return path.split(".").reduce((acc, key) => (acc == null ? undefined : acc[key]), obj); +} + +function pickFirst(obj, paths) { + for (const path of paths) { + const value = getPath(obj, path); + if (value !== undefined && value !== null && value !== "") return value; + } + return undefined; +} + +function toBool(value, fallback = false) { + if (value === undefined || value === null) return fallback; + if (typeof value === "boolean") return value; + if (typeof value === "number") return value !== 0; + const v = String(value).trim().toLowerCase(); + if (["true", "1", "yes", "y"].includes(v)) return true; + if (["false", "0", "no", "n"].includes(v)) return false; + return fallback; +} + +function parseRole(value) { + const raw = String(value || "USER").trim().toUpperCase(); + if (raw === "ADMIN") return "ADMIN"; + if (raw === "AUTHOR") return "AUTHOR"; + return "USER"; +} + +function sanitizeUsername(input) { + return String(input || "") + .trim() + .toLowerCase() + .replace(/[^a-z0-9_]/g, "_") + .replace(/_+/g, "_") + .replace(/^_+|_+$/g, ""); +} + +function extractUser(doc) { + const mongoId = toStr(doc._id) || createId(); + + const emailRaw = pickFirst(doc, ["email", "googleEmail"]); + const email = emailRaw ? String(emailRaw).trim().toLowerCase() : null; + + const usernameRaw = + pickFirst(doc, ["username", "userName", "handle"]) || + (email ? email.split("@")[0] : null) || + `user_${mongoId.slice(-6)}`; + const username = sanitizeUsername(usernameRaw) || `user_${mongoId.slice(-6)}`; + + const displayName = toStr( + pickFirst(doc, ["displayName", "fullName", "name", "username", "userName"]), + ); + const avatarUrl = toStr( + pickFirst(doc, ["avatarUrl", "avatar", "profilePicture", "photoURL"]), + ); + + const role = parseRole(pickFirst(doc, ["role", "userRole"])); + const is2FaAuthEnabled = toBool( + pickFirst(doc, ["is2FaAuthEnabled", "is2FAEnabled", "twoFactorEnabled"]), + false, + ); + const isBanned = toBool(pickFirst(doc, ["isBanned", "banned", "isBlocked"]), false); + const isEmailVerified = toBool( + pickFirst(doc, ["isEmailVerified", "emailVerified", "isVerified"]), + false, + ); + const verificationToken = toStr( + pickFirst(doc, ["verificationToken", "emailVerificationToken"]), + ); + + const createdAt = doc.createdAt ? new Date(doc.createdAt) : new Date(); + const updatedAt = doc.updatedAt ? new Date(doc.updatedAt) : createdAt; + + const googleSub = toStr(pickFirst(doc, ["googleSub", "googleId", "oauth.googleSub"])); + const googleEmail = toStr(pickFirst(doc, ["googleEmail"])) || email; + const passwordHash = toStr(pickFirst(doc, ["passwordHash", "password", "hash"])); + + let provider = null; + if (passwordHash) provider = "EMAIL_PASSWORD"; + else if (googleSub) provider = "GOOGLE_OAUTH"; + + return { + id: mongoId, + email, + username, + displayName, + avatarUrl, + role, + is2FaAuthEnabled, + isBanned, + isEmailVerified, + verificationToken, + createdAt, + updatedAt, + provider, + googleSub, + googleEmail, + passwordHash, + }; +} + +async function upsertUser(client, u) { + await client.query( + `insert into "user" ( + id, email, display_name, avatar_url, username, role, + is2fa_auth_enabled, is_banned, is_email_verified, verification_token, + created_at, updated_at + ) + values ( + $1, $2, $3, $4, $5, $6::role, + $7, $8, $9, $10, $11, $12 + ) + on conflict (id) do update set + email = excluded.email, + display_name = excluded.display_name, + avatar_url = excluded.avatar_url, + username = excluded.username, + role = excluded.role, + is2fa_auth_enabled = excluded.is2fa_auth_enabled, + is_banned = excluded.is_banned, + is_email_verified = excluded.is_email_verified, + verification_token = excluded.verification_token, + updated_at = excluded.updated_at`, + [ + u.id, + u.email, + u.displayName, + u.avatarUrl, + u.username, + u.role, + u.is2FaAuthEnabled, + u.isBanned, + u.isEmailVerified, + u.verificationToken, + u.createdAt, + u.updatedAt, + ], + ); + + if (!u.provider) return; + + await client.query( + `insert into auth_method ( + id, user_id, provider, google_sub, google_email, email, password_hash, + created_at, updated_at + ) + values ( + $1, $2, $3::"AuthProvider", $4, $5, $6, $7, $8, $9 + ) + on conflict (user_id) do update set + provider = excluded.provider, + google_sub = excluded.google_sub, + google_email = excluded.google_email, + email = excluded.email, + password_hash = excluded.password_hash, + updated_at = excluded.updated_at`, + [ + createId(), + u.id, + u.provider, + u.provider === "GOOGLE_OAUTH" ? u.googleSub : null, + u.provider === "GOOGLE_OAUTH" ? u.googleEmail : null, + u.provider === "EMAIL_PASSWORD" ? u.email : null, + u.provider === "EMAIL_PASSWORD" ? u.passwordHash : null, + u.createdAt, + u.updatedAt, + ], + ); +} + +async function main() { + assertEnv(); + + await mongoose.connect(MONGO_URI, { dbName: MONGO_DB_NAME }); + const mongoDb = mongoose.connection.db; + const mongoUsers = await mongoDb.collection(USERS_COLLECTION).find({}).toArray(); + console.log(`Mongo users found: ${mongoUsers.length}`); + + const pool = new Pool({ connectionString: DATABASE_URL }); + const client = await pool.connect(); + + try { + let migrated = 0; + let skipped = 0; + + for (const doc of mongoUsers) { + const u = extractUser(doc); + try { + await client.query("begin"); + await upsertUser(client, u); + await client.query("commit"); + migrated += 1; + } catch (err) { + await client.query("rollback"); + skipped += 1; + console.warn(`Skipped user ${u.id}: ${err.message}`); + } + } + + console.log( + `User migration complete. Success: ${migrated}/${mongoUsers.length}, skipped: ${skipped}`, + ); + } finally { + client.release(); + await pool.end(); + await mongoose.disconnect(); + } +} + +main().catch((err) => { + console.error("User migration failed:", err); + process.exitCode = 1; +}); From 04ff2f383983413f5def955c6a3d4ecf1449fe8a Mon Sep 17 00:00:00 2001 From: Kmadhav824 Date: Mon, 27 Apr 2026 03:01:51 +0530 Subject: [PATCH 4/4] Corrected schema path across services, packages updated, readme changes --- backend/package.json | 5 +- .../src/api/submission/submission-service.ts | 47 ++++++++++++------- workers/.env.example | 1 + workers/README.md | 1 + workers/config/index.js | 1 + workers/db/index.ts | 7 +++ workers/db/{ => src}/relations.ts | 2 +- workers/db/{ => src}/schema.ts | 4 +- workers/loaders/postgres.js | 11 +++-- workers/src/code/db-service.js | 32 +++++++++++-- workers/src/code/execute.js | 4 +- workers/src/worker.js | 2 +- 12 files changed, 87 insertions(+), 30 deletions(-) create mode 100644 workers/db/index.ts rename workers/db/{ => src}/relations.ts (96%) rename workers/db/{ => src}/schema.ts (99%) diff --git a/backend/package.json b/backend/package.json index b9eb5f4..baf6c57 100644 --- a/backend/package.json +++ b/backend/package.json @@ -11,7 +11,10 @@ "lint": "eslint --ext .js,.ts src", "lint:fix": "eslint --fix --ext .js,.ts src", "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,md}\"", - "db:sync": "pnpm add file:../db-schema && drizzle-kit generate && drizzle-kit migrate" + "db:sync": "pnpm add file:../db-schema && drizzle-kit generate && drizzle-kit migrate", + "migrate:mongo:users": "node src/scripts/migrate-mongo-users-to-postgres.js", + "migrate:mongo:problems": "node src/scripts/migrate-mongo-problems-to-postgres.js", + "migrate:mongo:submissions": "node src/scripts/migrate-mongo-submissions-to-postgres.js" }, "keywords": [], "author": "", diff --git a/backend/src/api/submission/submission-service.ts b/backend/src/api/submission/submission-service.ts index 15f5884..dd65d79 100644 --- a/backend/src/api/submission/submission-service.ts +++ b/backend/src/api/submission/submission-service.ts @@ -84,18 +84,7 @@ export const handlegetSubmissionStatus = async ( submissionId: string ): Promise => { try { - - const redisStatus = await redis.get(`submission:${submissionId}`); - if (redisStatus) { - const parsed = JSON.parse(redisStatus); - return { - submissionId, - status: parsed.status, - startedAt : new Date(parsed.createdAt), - }; - } - - const [result] = await db + const [dbResult] = await db .select({ id: submission.id, status: submission.status, @@ -104,14 +93,40 @@ export const handlegetSubmissionStatus = async ( .from(submission) .where(eq(submission.id, submissionId)); - if (!result) { + if (!dbResult) { throw new ApiError('Submission not found', httpStatus.NOT_FOUND); } + const redisStatus = await redis.get(`submission:${submissionId}`); + if (redisStatus) { + const parsed = JSON.parse(redisStatus); + + const redisState = String(parsed?.status || '').toUpperCase(); + const dbState = String(dbResult.status || '').toUpperCase(); + const dbIsTerminal = dbState === 'COMPLETED' || dbState === 'FAILED'; + const redisIsNonTerminal = redisState === 'PENDING' || redisState === 'RUNNING'; + + // If Redis is stale (still running/pending) but DB is already terminal, + // trust DB to avoid frontend getting stuck in "Running". + if (dbIsTerminal && redisIsNonTerminal) { + return { + submissionId: dbResult.id, + status: dbResult.status, + startedAt: new Date(dbResult.createdAt), + }; + } + + return { + submissionId, + status: parsed.status, + startedAt: new Date(parsed.updatedAt || parsed.createdAt || dbResult.createdAt), + }; + } + return { - submissionId: result.id, - status: result.status, - startedAt : new Date(result.createdAt), + submissionId: dbResult.id, + status: dbResult.status, + startedAt : new Date(dbResult.createdAt), }; } catch (error) { console.error("Database error:", error); diff --git a/workers/.env.example b/workers/.env.example index c3c20aa..89af6f9 100644 --- a/workers/.env.example +++ b/workers/.env.example @@ -3,6 +3,7 @@ # --- Queue & database --- # Host Node (npm start on your machine, Redis on localhost): REDIS_URL=redis://localhost:6379 +DATABASE_URL=postgresql://codesm:codesm_dev_password@localhost:5432/codesm_dev # Docker Compose uses bundled Redis; worker compose file forces redis://redis:6379 for the container. MONGO_URI=mongodb://localhost:27017/codesm diff --git a/workers/README.md b/workers/README.md index 76f6e4f..d521d2a 100644 --- a/workers/README.md +++ b/workers/README.md @@ -19,6 +19,7 @@ npm install | Variable | Purpose | |----------|---------| +| `DATABASE_URL` | PostgreSQL connection string used to update `submission`/`execution_result` | | `REDIS_URL` | Redis connection string (default `redis://localhost:6379`) | | `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_BUCKET_NAME` | Used by `services/aws.service.js` when pulling problem assets from S3 | diff --git a/workers/config/index.js b/workers/config/index.js index 11bd947..35e2425 100644 --- a/workers/config/index.js +++ b/workers/config/index.js @@ -8,6 +8,7 @@ const envSchema = yup.object({ AWS_REGION: yup.string().required(), AWS_SECRET_ACCESS_KEY: yup.string().required(), + DATABASE_URL: yup.string().required(), REDIS_URL: yup.string().required(), MONGO_URI: yup.string().required(), CPP_RUNNER_IMAGE: yup.string().required(), diff --git a/workers/db/index.ts b/workers/db/index.ts new file mode 100644 index 0000000..d653579 --- /dev/null +++ b/workers/db/index.ts @@ -0,0 +1,7 @@ +import * as tables from "../db/src/schema.ts" +import * as relations from "../db/src/relations.ts" + +export const schema = { + ...tables, + ...relations +} \ No newline at end of file diff --git a/workers/db/relations.ts b/workers/db/src/relations.ts similarity index 96% rename from workers/db/relations.ts rename to workers/db/src/relations.ts index e0cb745..ce6995c 100644 --- a/workers/db/relations.ts +++ b/workers/db/src/relations.ts @@ -1,5 +1,5 @@ import { relations } from 'drizzle-orm'; -import { user, problem, tag,problemTag, session, testcase, hint, editorial, submission, executionResult } from './schema'; +import { user, problem, tag,problemTag, session, testcase, hint, editorial, submission, executionResult } from './schema.ts'; export const userRelations = relations(user, ({ many }: { many: any }) => ({ problem: many(problem), diff --git a/workers/db/schema.ts b/workers/db/src/schema.ts similarity index 99% rename from workers/db/schema.ts rename to workers/db/src/schema.ts index b0e72e9..156ef66 100644 --- a/workers/db/schema.ts +++ b/workers/db/src/schema.ts @@ -13,7 +13,9 @@ import { } from 'drizzle-orm/pg-core'; import type { ExtraConfigColumn } from 'drizzle-orm/pg-core/columns/common'; import { sql } from 'drizzle-orm'; -import { createId } from '@paralleldrive/cuid2'; +import { randomUUID } from 'node:crypto'; + +const createId = () => randomUUID(); // ───────────────────────────────────────────── // Enums diff --git a/workers/loaders/postgres.js b/workers/loaders/postgres.js index 43cc40e..194fbfa 100644 --- a/workers/loaders/postgres.js +++ b/workers/loaders/postgres.js @@ -1,7 +1,8 @@ -import { schema } from 'db-schema'; +import { schema } from '../db/index.ts'; import { Pool } from 'pg'; import { drizzle } from 'drizzle-orm/node-postgres'; import logger from './logger.js'; +import env from '../config/index.js'; function createDrizzle(pool) { return drizzle(pool, { schema }); @@ -13,8 +14,12 @@ let pool; export async function getDrizzleClient(){ if (db) return db; + if (!env.DATABASE_URL) { + throw new Error('DATABASE_URL is required for worker PostgreSQL connection'); + } + pool = new Pool({ - connectionString: process.env.DATABASE_URL, + connectionString: env.DATABASE_URL, max: 20, idleTimeoutMillis: 30000, connectionTimeoutMillis: 10000, @@ -35,4 +40,4 @@ export async function closeDatabaseConnection() { await pool.end(); logger.error('Database connection closed'); } -} \ No newline at end of file +} diff --git a/workers/src/code/db-service.js b/workers/src/code/db-service.js index 8789f73..f9b1aef 100644 --- a/workers/src/code/db-service.js +++ b/workers/src/code/db-service.js @@ -1,14 +1,29 @@ import { db } from "../../loaders/postgres.js"; import { eq, and } from "drizzle-orm"; -import { schema } from "db-schema"; +import { schema } from "../../db/index.ts"; import fs from "fs/promises"; import { redisClient } from "../../loaders/redis.js"; +function normalizeJobStatus(status, verdict) { + const normalized = String(status || "").toUpperCase(); + if (normalized === "PENDING" || normalized === "RUNNING" || normalized === "FAILED" || normalized === "COMPLETED") { + return normalized; + } + + // Map verdict-style statuses (e.g. COMPILE_ERROR) to a valid JobStatus enum. + if (String(verdict || "").toUpperCase() === "PENDING") { + return "PENDING"; + } + return "FAILED"; +} + export async function updateExecutionResult(submissionId, result) { + const jobStatus = normalizeJobStatus(result.status, result.verdict); + await db .update(schema.submission) .set({ - status: result.status, + status: jobStatus, totalTestcases: result.totalCount, passedTestcases: result.passedCount, failedTestcases: result.totalCount - result.passedCount, @@ -32,7 +47,12 @@ export async function fetchTestCases(problemId, mode) { const cacheKey = `db_testcases:${problemId}:${mode}`; const cachedData = await redisClient.get(cacheKey); if (cachedData) { - return JSON.parse(cachedData); + const parsed = JSON.parse(cachedData); + if (Array.isArray(parsed) && parsed.length > 0) { + return parsed; + } + // Do not trust/stick to cached empty results. Re-query DB in case data was migrated later. + await redisClient.del(cacheKey); } const testcaseQuery = @@ -49,8 +69,10 @@ export async function fetchTestCases(problemId, mode) { .where(testcaseQuery) .orderBy(schema.testcase.order); - // Cache the result for 1 hour - await redisClient.set(cacheKey, JSON.stringify(testcases), "EX", 3600); + // Cache only positive results for 1 hour; avoid stale empty-cache issue. + if (testcases.length > 0) { + await redisClient.set(cacheKey, JSON.stringify(testcases), "EX", 3600); + } return testcases; } diff --git a/workers/src/code/execute.js b/workers/src/code/execute.js index 597f4f1..8ebb339 100644 --- a/workers/src/code/execute.js +++ b/workers/src/code/execute.js @@ -58,7 +58,7 @@ export const executeCode = async (testcases, language, runnerDir, limits) => { if (!spec) { await fs.rm(runnerDir, { recursive: true, force: true }); return { - status: "COMPILE_ERROR", + status: "FAILED", verdict: "COMPILE_ERROR", error: `Unsupported language: ${language}`, ...defaultCounts, @@ -83,7 +83,7 @@ export const executeCode = async (testcases, language, runnerDir, limits) => { if (!compile.ok) { await fs.rm(runnerDir, { recursive: true, force: true }); return { - status: "COMPILE_ERROR", + status: "FAILED", verdict: "COMPILE_ERROR", errors: compile.errors, raw: compile.raw, diff --git a/workers/src/worker.js b/workers/src/worker.js index e38374b..5aeee88 100644 --- a/workers/src/worker.js +++ b/workers/src/worker.js @@ -2,7 +2,7 @@ import { Worker, Queue } from "bullmq"; import runCodeWithInput from "./code/index.js"; import { getDrizzleClient, db } from "../loaders/postgres.js"; import { setSubmissionStatus } from "../loaders/redis.js"; -import { schema } from "db-schema"; +import { schema } from "../db/index.ts"; import { eq } from "drizzle-orm"; import env from "../config/index.js";