pms_md 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,22 +1,123 @@
1
1
  {
2
2
  "name": "pms_md",
3
- "version": "1.0.0",
4
- "description": "To make it easy for you to get started with GitLab, here's a list of recommended next steps.",
3
+ "version": "1.0.3",
4
+ "description": "Comprehensive monitoring solution for Node.js applications with error tracking, health checks, multi-database support (MongoDB, PostgreSQL, MySQL, MSSQL, SQLite, Redis, Cassandra, Elasticsearch, DynamoDB, Neo4j, CouchDB), and multi-channel notifications",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
7
+ "test": "jest",
8
+ "start": "node node-monitor/examples/express-app.js"
8
9
  },
9
10
  "repository": {
10
11
  "type": "git",
11
12
  "url": "git+https://gitlab.com/manish-proses/pms_md.git"
12
13
  },
13
14
  "keywords": [
14
- "proses"
15
+ "proses",
16
+ "monitoring",
17
+ "health-check",
18
+ "error-tracking",
19
+ "notifications",
20
+ "alerts",
21
+ "nodejs",
22
+ "express",
23
+ "logging",
24
+ "winston",
25
+ "error-handler",
26
+ "health-monitoring",
27
+ "system-monitoring",
28
+ "email-notifications",
29
+ "slack-notifications"
15
30
  ],
16
31
  "author": "Manish Desai",
17
32
  "license": "ISC",
18
33
  "bugs": {
19
34
  "url": "https://gitlab.com/manish-proses/pms_md/issues"
20
35
  },
21
- "homepage": "https://gitlab.com/manish-proses/pms_md#readme"
36
+ "homepage": "https://gitlab.com/manish-proses/pms_md#readme",
37
+ "dependencies": {
38
+ "winston": "^3.11.0",
39
+ "winston-daily-rotate-file": "^4.7.1",
40
+ "nodemailer": "^6.9.7",
41
+ "@slack/webhook": "^7.0.2",
42
+ "axios": "^1.6.2",
43
+ "node-cron": "^3.0.3"
44
+ },
45
+ "peerDependencies": {
46
+ "express": "^4.18.0 || ^5.0.0",
47
+ "mongoose": "^7.0.0 || ^8.0.0",
48
+ "pg": "^8.0.0",
49
+ "mysql2": "^2.0.0 || ^3.0.0",
50
+ "mariadb": "^3.0.0",
51
+ "mssql": "^9.0.0 || ^10.0.0",
52
+ "tedious": "^15.0.0 || ^16.0.0",
53
+ "sqlite3": "^5.0.0",
54
+ "better-sqlite3": "^8.0.0 || ^9.0.0",
55
+ "sequelize": "^6.0.0",
56
+ "ioredis": "^5.0.0",
57
+ "nano": "^10.0.0",
58
+ "cassandra-driver": "^4.0.0",
59
+ "@elastic/elasticsearch": "^8.0.0",
60
+ "@aws-sdk/client-dynamodb": "^3.0.0",
61
+ "aws-sdk": "^2.0.0",
62
+ "neo4j-driver": "^5.0.0"
63
+ },
64
+ "peerDependenciesMeta": {
65
+ "express": {
66
+ "optional": true
67
+ },
68
+ "mongoose": {
69
+ "optional": true
70
+ },
71
+ "pg": {
72
+ "optional": true
73
+ },
74
+ "mysql2": {
75
+ "optional": true
76
+ },
77
+ "mariadb": {
78
+ "optional": true
79
+ },
80
+ "mssql": {
81
+ "optional": true
82
+ },
83
+ "tedious": {
84
+ "optional": true
85
+ },
86
+ "sqlite3": {
87
+ "optional": true
88
+ },
89
+ "better-sqlite3": {
90
+ "optional": true
91
+ },
92
+ "sequelize": {
93
+ "optional": true
94
+ },
95
+ "ioredis": {
96
+ "optional": true
97
+ },
98
+ "nano": {
99
+ "optional": true
100
+ },
101
+ "cassandra-driver": {
102
+ "optional": true
103
+ },
104
+ "@elastic/elasticsearch": {
105
+ "optional": true
106
+ },
107
+ "@aws-sdk/client-dynamodb": {
108
+ "optional": true
109
+ },
110
+ "aws-sdk": {
111
+ "optional": true
112
+ },
113
+ "neo4j-driver": {
114
+ "optional": true
115
+ }
116
+ },
117
+ "devDependencies": {
118
+ "jest": "^29.7.0"
119
+ },
120
+ "engines": {
121
+ "node": ">=14.0.0"
122
+ }
22
123
  }
@@ -1,286 +0,0 @@
1
- # 🎨 Design Improvements - Error Logs Page
2
-
3
- ## Overview
4
- Comprehensive design improvements made to the Error Logs page to enhance visual appeal, user experience, and modern aesthetics.
5
-
6
- ---
7
-
8
- ## ✨ Key Improvements
9
-
10
- ### 1. **Modern Header with Gradient Background**
11
- - **Before:** Simple text header
12
- - **After:** Full-width gradient header with purple/blue theme
13
- - **Features:**
14
- - Large icon (📋) with drop shadow
15
- - Bold, prominent title with text shadow
16
- - Descriptive subtitle
17
- - Matches the overall app theme
18
- - Responsive design for mobile devices
19
-
20
- ### 2. **Enhanced Filter Buttons**
21
- - **Before:** Simple inline buttons with basic styling
22
- - **After:** Modern card-based filter system
23
- - **Features:**
24
- - Grid layout with responsive columns
25
- - Each button shows:
26
- - Icon
27
- - Label
28
- - Count (large, prominent number)
29
- - Animated left border that expands on active state
30
- - Gradient backgrounds for each filter type:
31
- - All Errors: Purple gradient
32
- - API Errors: Red gradient
33
- - Server Errors: Orange gradient
34
- - Database Errors: Purple gradient
35
- - Smooth hover effects with icon scaling
36
- - Active state fills entire button with gradient
37
-
38
- ### 3. **Improved Stats Cards**
39
- - **Before:** Basic white cards
40
- - **After:** Modern cards with visual enhancements
41
- - **Features:**
42
- - Left border accent (purple)
43
- - Decorative gradient background element in top-right
44
- - Hover effect (lifts up with shadow)
45
- - Better typography with uppercase labels
46
- - Larger, bolder values
47
- - Smooth transitions
48
-
49
- ### 4. **Enhanced Error Item Cards**
50
- - **Before:** Simple list items with border
51
- - **After:** Interactive cards with hover effects
52
- - **Features:**
53
- - Left border appears on hover (purple)
54
- - Gradient background on hover
55
- - Smooth padding transition
56
- - Better visual feedback
57
-
58
- ### 5. **Modernized Badges**
59
- - **Before:** Flat colored badges
60
- - **After:** Gradient badges with depth
61
- - **Features:**
62
- - Gradient backgrounds
63
- - Border for definition
64
- - Box shadow for depth
65
- - Scale animation on hover
66
- - Better contrast and readability
67
-
68
- ### 6. **Improved Action Buttons**
69
- - **Before:** Basic gradient buttons
70
- - **After:** Interactive buttons with ripple effect
71
- - **Features:**
72
- - Ripple animation on hover (expanding circle)
73
- - Better shadows
74
- - Smooth lift effect on hover
75
- - Icon and text separated for better layout
76
- - Larger, more clickable
77
-
78
- ### 7. **Enhanced File Selector**
79
- - **Before:** Simple dropdown
80
- - **After:** Styled container with visual hierarchy
81
- - **Features:**
82
- - Gradient background container
83
- - Border for definition
84
- - Icon in label (📅)
85
- - Better focus states with ring effect
86
- - Hover effect on dropdown
87
- - Improved typography
88
-
89
- ### 8. **Inline Stats in Header**
90
- - **New Feature:** Quick stats at a glance
91
- - **Features:**
92
- - Shows Total, API, and Server error counts
93
- - Icon for each stat type
94
- - Gradient background cards
95
- - Left border accent
96
- - Updates in real-time
97
-
98
- ### 9. **Responsive Design**
99
- - **Mobile Optimizations:**
100
- - Stacked layout for small screens
101
- - Adjusted font sizes
102
- - Full-width buttons
103
- - Centered header content
104
- - Smaller icons and padding
105
-
106
- ### 10. **Smooth Animations**
107
- - **Added:**
108
- - Fade-in animation for error items
109
- - Smooth scroll behavior
110
- - Hover transitions on all interactive elements
111
- - Scale animations on badges
112
- - Ripple effect on buttons
113
- - Border expansion animations
114
-
115
- ---
116
-
117
- ## 🎨 Color Scheme
118
-
119
- ### Primary Colors:
120
- - **Purple Gradient:** `#667eea` → `#764ba2`
121
- - **Red (API Errors):** `#ef4444` → `#dc2626`
122
- - **Orange (Server Errors):** `#f59e0b` → `#d97706`
123
- - **Purple (Database Errors):** `#8b5cf6` → `#7c3aed`
124
- - **Green (Success):** `#10b981` → `#059669`
125
- - **Blue (Info):** `#3b82f6` → `#2563eb`
126
-
127
- ### Neutral Colors:
128
- - **Background:** `#f9fafb`, `#f3f4f6`
129
- - **Text:** `#1f2937`, `#6b7280`
130
- - **Borders:** `#e5e7eb`
131
-
132
- ---
133
-
134
- ## 📱 Responsive Breakpoints
135
-
136
- ### Mobile (max-width: 768px):
137
- - Single column layout
138
- - Stacked filter buttons
139
- - Full-width action buttons
140
- - Smaller header icon and title
141
- - Centered content
142
-
143
- ---
144
-
145
- ## 🔧 Technical Details
146
-
147
- ### CSS Features Used:
148
- - **Flexbox** - For flexible layouts
149
- - **CSS Grid** - For responsive filter buttons
150
- - **Gradients** - Linear gradients for backgrounds
151
- - **Transitions** - Smooth animations
152
- - **Transform** - Scale and translate effects
153
- - **Box Shadow** - Depth and elevation
154
- - **Pseudo-elements** - `::before` for decorative elements
155
- - **Keyframe Animations** - Fade-in and spin animations
156
-
157
- ### Performance Optimizations:
158
- - Hardware-accelerated transforms
159
- - Efficient CSS selectors
160
- - Minimal repaints
161
- - Smooth 60fps animations
162
-
163
- ---
164
-
165
- ## 🎯 User Experience Improvements
166
-
167
- ### Visual Hierarchy:
168
- 1. **Header** - Most prominent, sets context
169
- 2. **Quick Stats** - Immediate overview
170
- 3. **File Selector & Actions** - Primary controls
171
- 4. **Filter Buttons** - Secondary navigation
172
- 5. **Stats Cards** - Detailed metrics
173
- 6. **Error List** - Main content
174
-
175
- ### Interaction Feedback:
176
- - ✅ Hover states on all clickable elements
177
- - ✅ Active states for current selection
178
- - ✅ Loading states with spinner
179
- - ✅ Empty states with friendly message
180
- - ✅ Smooth transitions for all state changes
181
-
182
- ### Accessibility:
183
- - ✅ High contrast colors
184
- - ✅ Large click targets (min 44x44px)
185
- - ✅ Clear visual feedback
186
- - ✅ Readable font sizes
187
- - ✅ Semantic HTML structure
188
-
189
- ---
190
-
191
- ## 📊 Before & After Comparison
192
-
193
- ### Header:
194
- - **Before:** Plain text "📋 API Error Logs"
195
- - **After:** Full-width gradient banner with large icon, title, and subtitle
196
-
197
- ### Filter Buttons:
198
- - **Before:** 4 inline buttons with basic colors
199
- - **After:** Grid of modern cards with icons, labels, counts, and animations
200
-
201
- ### Stats Cards:
202
- - **Before:** Simple white cards
203
- - **After:** Cards with accents, decorative elements, and hover effects
204
-
205
- ### Error Items:
206
- - **Before:** Static list items
207
- - **After:** Interactive cards with hover animations
208
-
209
- ---
210
-
211
- ## 🚀 Future Enhancements (Optional)
212
-
213
- ### Potential Additions:
214
- 1. **Dark Mode** - Toggle for dark theme
215
- 2. **Export Options** - CSV, JSON, PDF export
216
- 3. **Search & Filter** - Text search within errors
217
- 4. **Date Range Picker** - Filter by custom date range
218
- 5. **Error Grouping** - Group similar errors
219
- 6. **Charts & Graphs** - Visual error trends
220
- 7. **Real-time Updates** - WebSocket for live updates
221
- 8. **Keyboard Shortcuts** - Quick navigation
222
- 9. **Customizable Views** - Save filter preferences
223
- 10. **Error Details Modal** - Expanded view for errors
224
-
225
- ---
226
-
227
- ## 📝 Code Structure
228
-
229
- ### File Modified:
230
- - `node-monitor/examples/views/error-logs.ejs`
231
-
232
- ### Sections Updated:
233
- 1. **CSS Styles** (Lines 8-647)
234
- - Page header gradient
235
- - Filter buttons
236
- - Stats cards
237
- - Error items
238
- - Badges
239
- - Action buttons
240
- - File selector
241
- - Responsive design
242
- - Animations
243
-
244
- 2. **HTML Structure** (Lines 648-908)
245
- - New gradient header
246
- - Inline stats
247
- - Restructured filter buttons
248
- - Updated action buttons
249
-
250
- ---
251
-
252
- ## ✅ Testing Checklist
253
-
254
- - [x] Desktop view (1920x1080)
255
- - [x] Tablet view (768x1024)
256
- - [x] Mobile view (375x667)
257
- - [x] Hover states
258
- - [x] Active states
259
- - [x] Loading states
260
- - [x] Empty states
261
- - [x] Long text handling
262
- - [x] Multiple errors display
263
- - [x] Filter functionality
264
- - [x] Refresh functionality
265
- - [x] Download functionality
266
-
267
- ---
268
-
269
- ## 🎉 Summary
270
-
271
- The Error Logs page has been transformed from a functional but basic interface into a modern, visually appealing, and highly interactive dashboard. The improvements focus on:
272
-
273
- 1. **Visual Appeal** - Modern gradients, shadows, and animations
274
- 2. **User Experience** - Clear hierarchy, intuitive interactions
275
- 3. **Responsiveness** - Works great on all devices
276
- 4. **Performance** - Smooth 60fps animations
277
- 5. **Accessibility** - High contrast, large targets, clear feedback
278
-
279
- The new design maintains the functionality while significantly enhancing the aesthetics and user experience!
280
-
281
- ---
282
-
283
- **Last Updated:** 2025-11-12
284
- **Version:** 2.0
285
- **Author:** Manish Desai
286
-
@@ -1,303 +0,0 @@
1
- # 🔧 Filter Buttons - Complete Fix
2
-
3
- ## ✅ **Issue Fixed:**
4
- All filter buttons now start in **simple state** (white background with purple left border). No button has gradient background by default.
5
-
6
- ---
7
-
8
- ## 🎨 **What Was Changed:**
9
-
10
- ### **1. Removed Default Active Class from HTML** ✅
11
- **File:** `node-monitor/examples/views/error-logs.ejs` (Line 757)
12
-
13
- **Before:**
14
- ```html
15
- <button class="filter-btn filter-all active" onclick="filterErrors('ALL')" id="filter-all">
16
- ```
17
-
18
- **After:**
19
- ```html
20
- <button class="filter-btn filter-all" onclick="filterErrors('ALL')" id="filter-all">
21
- ```
22
-
23
- ---
24
-
25
- ### **2. Updated CSS - Unified Default Border** ✅
26
- **File:** `node-monitor/examples/views/error-logs.ejs` (Line 182-192)
27
-
28
- **Before:**
29
- ```css
30
- .filter-btn::before {
31
- background: #e5e7eb; /* Gray border */
32
- }
33
- ```
34
-
35
- **After:**
36
- ```css
37
- .filter-btn::before {
38
- background: #667eea; /* Purple border for all */
39
- }
40
- ```
41
-
42
- ---
43
-
44
- ### **3. Gradient Only on Active State** ✅
45
- **File:** `node-monitor/examples/views/error-logs.ejs` (Line 225-240)
46
-
47
- **Before:**
48
- ```css
49
- .filter-all::before {
50
- background: linear-gradient(135deg, #667eea, #764ba2);
51
- }
52
- ```
53
-
54
- **After:**
55
- ```css
56
- .filter-all.active::before {
57
- background: linear-gradient(135deg, #667eea, #764ba2);
58
- }
59
- ```
60
-
61
- Now gradients only apply when button has `.active` class!
62
-
63
- ---
64
-
65
- ### **4. Fixed JavaScript to Use CSS Classes** ✅
66
- **File:** `node-monitor/examples/views/error-logs.ejs` (Line 953-972)
67
-
68
- **Before:**
69
- ```javascript
70
- function filterErrors(type) {
71
- // Used inline styles
72
- activeBtn.style.background = color;
73
- activeBtn.style.color = 'white';
74
- }
75
- ```
76
-
77
- **After:**
78
- ```javascript
79
- function filterErrors(type) {
80
- // Remove active class from all buttons
81
- document.querySelectorAll('.filter-btn').forEach(btn => {
82
- btn.classList.remove('active');
83
- btn.style.background = '';
84
- btn.style.color = '';
85
- });
86
-
87
- // Add active class to clicked button
88
- const activeBtn = document.getElementById(`filter-${type.toLowerCase().replace('_error', '')}`);
89
- if (activeBtn) {
90
- activeBtn.classList.add('active');
91
- }
92
- }
93
- ```
94
-
95
- ---
96
-
97
- ### **5. Ensure Clean State on Page Load** ✅
98
- **File:** `node-monitor/examples/views/error-logs.ejs` (Line 1006-1015)
99
-
100
- **Added:**
101
- ```javascript
102
- window.addEventListener('load', () => {
103
- // Ensure all filter buttons start in simple state
104
- document.querySelectorAll('.filter-btn').forEach(btn => {
105
- btn.classList.remove('active');
106
- btn.style.background = '';
107
- btn.style.color = '';
108
- });
109
- loadLogFile();
110
- });
111
- ```
112
-
113
- ---
114
-
115
- ## 📋 **How Buttons Work Now:**
116
-
117
- ### **Default State (All Buttons Look Identical):**
118
- ```
119
- ┌─────────────────────┐
120
- │ 📊 All Errors │ ← White background
121
- │ 10 │ ← Purple left border (4px)
122
- └─────────────────────┘
123
-
124
- ┌─────────────────────┐
125
- │ 🔗 API Errors │ ← White background
126
- │ 2 │ ← Purple left border (4px)
127
- └─────────────────────┘
128
-
129
- ┌─────────────────────┐
130
- │ ⚙️ Server Errors │ ← White background
131
- │ 0 │ ← Purple left border (4px)
132
- └─────────────────────┘
133
-
134
- ┌─────────────────────┐
135
- │ 🗄️ Database Errors │ ← White background
136
- │ 0 │ ← Purple left border (4px)
137
- └─────────────────────┘
138
- ```
139
-
140
- ### **Active State (When Clicked):**
141
-
142
- **All Errors (clicked):**
143
- ```
144
- ┌─────────────────────┐
145
- │ 📊 All Errors │ ← Purple gradient background
146
- │ 10 │ ← White text
147
- └─────────────────────┘
148
- ```
149
-
150
- **API Errors (clicked):**
151
- ```
152
- ┌─────────────────────┐
153
- │ 🔗 API Errors │ ← Red gradient background
154
- │ 2 │ ← White text
155
- └─────────────────────┘
156
- ```
157
-
158
- **Server Errors (clicked):**
159
- ```
160
- ┌─────────────────────┐
161
- │ ⚙️ Server Errors │ ← Orange gradient background
162
- │ 0 │ ← White text
163
- └─────────────────────┘
164
- ```
165
-
166
- **Database Errors (clicked):**
167
- ```
168
- ┌─────────────────────┐
169
- │ 🗄️ Database Errors │ ← Purple gradient background
170
- │ 0 │ ← White text
171
- └─────────────────────┘
172
- ```
173
-
174
- ---
175
-
176
- ## 🎨 **Visual States:**
177
-
178
- ### **Simple State:**
179
- - ✅ White background
180
- - ✅ Purple left border (4px, same for all)
181
- - ✅ Gray label text (#6b7280)
182
- - ✅ Dark count text (#1f2937)
183
- - ✅ Original icon colors
184
- - ✅ Light border (#e5e7eb)
185
-
186
- ### **Hover State:**
187
- - ✅ Lifts up 2px
188
- - ✅ Border expands to 6px
189
- - ✅ Icon scales to 1.1x
190
- - ✅ Shadow appears
191
-
192
- ### **Active State:**
193
- - ✅ Full gradient background (100% width)
194
- - ✅ White text (label + count)
195
- - ✅ White icon (inverted)
196
- - ✅ Lifted appearance
197
- - ✅ Stronger shadow
198
- - ✅ No border
199
-
200
- ---
201
-
202
- ## 🔄 **User Interaction Flow:**
203
-
204
- 1. **Page Loads:**
205
- - All buttons in simple state
206
- - No button is active
207
- - All have purple left border
208
-
209
- 2. **User Clicks "All Errors":**
210
- - "All Errors" button gets purple gradient background
211
- - Text turns white
212
- - Other buttons remain in simple state
213
-
214
- 3. **User Clicks "API Errors":**
215
- - "All Errors" returns to simple state
216
- - "API Errors" gets red gradient background
217
- - Text turns white
218
-
219
- 4. **User Clicks Another Button:**
220
- - Previous active button returns to simple state
221
- - New button gets its gradient background
222
- - Only one button active at a time
223
-
224
- ---
225
-
226
- ## 🎨 **Color Scheme:**
227
-
228
- ### **Default State:**
229
- - Border: `#667eea` (Purple)
230
- - Background: `white`
231
- - Label: `#6b7280` (Gray)
232
- - Count: `#1f2937` (Dark Gray)
233
-
234
- ### **Active Gradients:**
235
- - **All Errors:** `#667eea` → `#764ba2` (Purple)
236
- - **API Errors:** `#ef4444` → `#dc2626` (Red)
237
- - **Server Errors:** `#f59e0b` → `#d97706` (Orange)
238
- - **Database Errors:** `#8b5cf6` → `#7c3aed` (Purple)
239
-
240
- ### **Active Text:**
241
- - Label: `#ffffff` (White)
242
- - Count: `#ffffff` (White)
243
- - Icon: White (inverted)
244
-
245
- ---
246
-
247
- ## ✅ **Testing Checklist:**
248
-
249
- - [x] All buttons start in simple state
250
- - [x] No button has gradient by default
251
- - [x] All buttons have same purple left border
252
- - [x] Clicking button applies gradient
253
- - [x] Only one button active at a time
254
- - [x] Active button shows white text
255
- - [x] Inactive buttons return to simple state
256
- - [x] Hover effects work correctly
257
- - [x] Page load clears any cached states
258
- - [x] JavaScript uses CSS classes (not inline styles)
259
-
260
- ---
261
-
262
- ## 🚀 **How to Test:**
263
-
264
- 1. **Open the page:**
265
- ```
266
- http://localhost:3001/monitor/error-logs
267
- ```
268
-
269
- 2. **Do a hard refresh:**
270
- - Windows: `Ctrl + Shift + R` or `Ctrl + F5`
271
- - Mac: `Cmd + Shift + R`
272
-
273
- 3. **Verify:**
274
- - All 4 filter buttons look identical
275
- - All have white background
276
- - All have purple left border
277
- - No button has gradient background
278
-
279
- 4. **Click each button:**
280
- - Verify gradient appears
281
- - Verify text turns white
282
- - Verify other buttons return to simple state
283
-
284
- ---
285
-
286
- ## 📝 **Summary:**
287
-
288
- ✅ **All filter buttons now start in simple state**
289
- ✅ **Unified purple left border for all buttons**
290
- ✅ **Gradient backgrounds only appear when clicked**
291
- ✅ **White text only appears when active**
292
- ✅ **Clean state on page load**
293
- ✅ **No inline styles**
294
- ✅ **CSS classes control all states**
295
-
296
- **The filter buttons are now working perfectly!** 🎉
297
-
298
- ---
299
-
300
- **Last Updated:** 2025-11-12
301
- **Version:** 3.0
302
- **Status:** ✅ FIXED
303
-