inventrack 3.0.0

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.
Files changed (55) hide show
  1. package/README.md +25 -0
  2. package/api/index.js +13 -0
  3. package/backend/README.md +35 -0
  4. package/backend/data/db.json +1239 -0
  5. package/backend/package-lock.json +532 -0
  6. package/backend/package.json +8 -0
  7. package/frontend/README.md +22 -0
  8. package/frontend/assets/Icon.png +0 -0
  9. package/frontend/assets/IconSort.png +0 -0
  10. package/frontend/assets/activity-1.png +0 -0
  11. package/frontend/assets/activity-2.png +0 -0
  12. package/frontend/assets/activity-3.png +0 -0
  13. package/frontend/assets/activity-4.png +0 -0
  14. package/frontend/assets/card-icon-1.png +0 -0
  15. package/frontend/assets/card-icon-2.png +0 -0
  16. package/frontend/assets/card-icon-3.png +0 -0
  17. package/frontend/assets/card-icon-4.png +0 -0
  18. package/frontend/assets/login.png +0 -0
  19. package/frontend/assets/logo.png +0 -0
  20. package/frontend/categories.html +143 -0
  21. package/frontend/css/all.min.css +9 -0
  22. package/frontend/css/bootstrap.min.css +6 -0
  23. package/frontend/css/categories.css +359 -0
  24. package/frontend/css/dashboard.css +373 -0
  25. package/frontend/css/inventoryInsights.css +308 -0
  26. package/frontend/css/inventoryOverview.css +353 -0
  27. package/frontend/css/orders.css +632 -0
  28. package/frontend/css/products.css +364 -0
  29. package/frontend/css/signin.css +120 -0
  30. package/frontend/css/style.css +282 -0
  31. package/frontend/css/suppliers.css +136 -0
  32. package/frontend/dashboard.html +160 -0
  33. package/frontend/index.html +124 -0
  34. package/frontend/inventoryInsights.html +182 -0
  35. package/frontend/inventoryOverview.html +187 -0
  36. package/frontend/js/api.js +55 -0
  37. package/frontend/js/auth.js +70 -0
  38. package/frontend/js/bootstrap.bundle.min.js +7 -0
  39. package/frontend/js/categories.js +356 -0
  40. package/frontend/js/dashboard.js +341 -0
  41. package/frontend/js/inventoryInsights.js +396 -0
  42. package/frontend/js/inventoryOverview.js +503 -0
  43. package/frontend/js/orders.js +662 -0
  44. package/frontend/js/products.js +650 -0
  45. package/frontend/js/suppliers.js +535 -0
  46. package/frontend/js/utils.js +234 -0
  47. package/frontend/orders.html +216 -0
  48. package/frontend/products.html +152 -0
  49. package/frontend/suppliers.html +175 -0
  50. package/frontend/webfonts/fa-brands-400.woff2 +0 -0
  51. package/frontend/webfonts/fa-regular-400.woff2 +0 -0
  52. package/frontend/webfonts/fa-solid-900.woff2 +0 -0
  53. package/frontend/webfonts/fa-v4compatibility.woff2 +0 -0
  54. package/package.json +38 -0
  55. package/vercel.json +18 -0
@@ -0,0 +1,364 @@
1
+ .export-btn {
2
+ padding: var(--space-3) var(--space-8);
3
+ color: var(--text-over);
4
+ border: none;
5
+ border-radius: var(--radius-sm);
6
+ outline: none;
7
+ background-color: white;
8
+ margin-right: 15px;
9
+ box-shadow: var(--shadow-sm);
10
+ transition: var(--transition-fast);
11
+ }
12
+ .export-btn:hover {
13
+ background-color: var(--bg-soft);
14
+ }
15
+
16
+ .add-product {
17
+ padding: var(--space-3) var(--space-8);
18
+ color: var(--text-white);
19
+ border: none;
20
+ border-radius: var(--radius-sm);
21
+ outline: none;
22
+ background-color: var(--primary);
23
+ margin-right: 15px;
24
+ box-shadow: var(--shadow-sm);
25
+ transition: var(--transition-fast);
26
+ }
27
+ .add-product:hover {
28
+ background-color: var(--primary-hover);
29
+ }
30
+
31
+ .products-card {
32
+ width: 100%;
33
+ border: none;
34
+ box-shadow: var(--shadow-md);
35
+ line-height: 1.3;
36
+ margin-bottom: var(--space-8) !important;
37
+ }
38
+ .table thead th {
39
+ background: #f3f4f6;
40
+ padding: var(--space-5);
41
+ }
42
+ th[colspan="2"] {
43
+ text-align: center;
44
+ }
45
+ .table tbody td {
46
+ padding: var(--space-5);
47
+ border-top: 1px solid #eee;
48
+ }
49
+ .product-cell {
50
+ display: flex;
51
+ align-items: center;
52
+ gap: 12px;
53
+ }
54
+
55
+ .product-icon {
56
+ width: 40px;
57
+ height: 40px;
58
+ background: #e9eff1;
59
+ border-radius: 10px;
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ }
64
+ .product-icon i {
65
+ color: #555;
66
+ }
67
+
68
+ .product-info h6 {
69
+ margin: 0;
70
+ font-weight: 700;
71
+ }
72
+
73
+ .stock-normal {
74
+ color: #5d5a85 !important;
75
+ font-weight: bold;
76
+ }
77
+ .stock-warning {
78
+ color: var(--activity-yellow) !important;
79
+ font-weight: bold;
80
+ }
81
+ .stock-critical {
82
+ color: #c7485b !important;
83
+ font-weight: bold;
84
+ }
85
+
86
+ .editProductBtn {
87
+ background: var(--primary);
88
+ color: white;
89
+ border: none;
90
+ padding: 6px 16px;
91
+ width: 80%;
92
+ min-width: fit-content;
93
+ border-radius: 20px;
94
+ font-weight: bold;
95
+ transition: var(--transition-fast);
96
+ }
97
+ .editProductBtn:hover {
98
+ background-color: var(--primary-hover);
99
+ }
100
+ .removeProductBtn {
101
+ background: var(--danger);
102
+ color: white;
103
+ border: none;
104
+ padding: 6px 16px;
105
+ width: 80%;
106
+ min-width: fit-content;
107
+ border-radius: 20px;
108
+ font-weight: bold;
109
+ transition: var(--transition-fast);
110
+ }
111
+ .removeProductBtn:hover {
112
+ background-color: var(--danger-dark);
113
+ }
114
+ .status {
115
+ padding: 5px 12px;
116
+ border-radius: 20px;
117
+ font-size: 12px;
118
+ font-weight: bold;
119
+ }
120
+
121
+ .modal-wrapper {
122
+ top: 50%;
123
+ left: 50%;
124
+ transform: translate(-50%, -50%);
125
+ background-color: var(--bg-soft);
126
+ box-shadow: var(--shadow-md);
127
+ padding: var(--space-8);
128
+ border-radius: var(--radius-md);
129
+ z-index: 2;
130
+ }
131
+ .hidden {
132
+ display: none;
133
+ }
134
+ .form-group,
135
+ .form-row {
136
+ width: 100%;
137
+ }
138
+ label {
139
+ padding-bottom: 5px;
140
+ }
141
+ .form-row .form-group {
142
+ width: 47%;
143
+ }
144
+ .form-group input,
145
+ select {
146
+ padding: var(--space-3) var(--space-5);
147
+ background: transparent;
148
+ border: none;
149
+ box-shadow: var(--shadow-md);
150
+ border-radius: var(--radius-sm);
151
+ }
152
+ input:focus,
153
+ select:focus {
154
+ outline: 1px solid var(--primary);
155
+ }
156
+
157
+ .modal-btns {
158
+ width: 100%;
159
+ }
160
+ .cancel-btn {
161
+ width: 45%;
162
+ border: none;
163
+ color: white;
164
+ font-size: 18px;
165
+ letter-spacing: 1px;
166
+ border-radius: var(--radius-sm);
167
+ background-color: var(--danger);
168
+ padding: var(--space-2) var(--space-5);
169
+ transition: var(--transition-fast);
170
+ }
171
+ .cancel-btn:hover {
172
+ background-color: var(--danger-dark);
173
+ }
174
+ .save-product-btn {
175
+ width: 45%;
176
+ border: none;
177
+ color: white;
178
+ font-size: 18px;
179
+ letter-spacing: 1px;
180
+ border-radius: var(--radius-sm);
181
+ background-color: var(--primary);
182
+ padding: var(--space-2) var(--space-5);
183
+ transition: var(--transition-fast);
184
+ }
185
+ .save-product-btn:hover {
186
+ background-color: var(--primary-hover);
187
+ }
188
+ .modal-overlay {
189
+ padding: var(--space-5);
190
+ border-radius: var(--radius-md);
191
+ top: 0;
192
+ left: 0;
193
+ right: 0;
194
+ bottom: 0;
195
+ background-color: rgba(0, 0, 0, 0.6);
196
+ z-index: 1;
197
+ }
198
+
199
+ @media (max-width: 992px) {
200
+ .page-header {
201
+ flex-direction: column;
202
+ align-items: flex-start;
203
+ gap: 20px;
204
+ text-align: center;
205
+ }
206
+
207
+ .header-btns {
208
+ width: 100%;
209
+ display: flex;
210
+ justify-content: center;
211
+ }
212
+
213
+ .export-btn,
214
+ .add-product {
215
+ padding: 10px 16px;
216
+ font-size: 0.95rem;
217
+ }
218
+
219
+ .export-btn {
220
+ margin-right: 12px;
221
+ }
222
+
223
+ .products-card {
224
+ margin: 0 8px;
225
+ }
226
+
227
+ .table thead th,
228
+ .table tbody td {
229
+ padding: 12px 10px;
230
+ font-size: 0.95rem;
231
+ }
232
+
233
+ #editProductBtn,
234
+ #removeProductBtn {
235
+ padding: 6px 12px;
236
+ font-size: 0.9rem;
237
+ width: 100%;
238
+ }
239
+
240
+ .product-cell {
241
+ min-width: 160px;
242
+ }
243
+ }
244
+
245
+ @media (max-width: 768px) {
246
+ .main-content {
247
+ padding: 0 12px;
248
+ }
249
+
250
+ .page-title h1 {
251
+ font-size: 1.9rem;
252
+ }
253
+
254
+ .page-title p {
255
+ font-size: 0.95rem;
256
+ }
257
+
258
+ .add-product i,
259
+ .export-btn i {
260
+ margin-right: 6px;
261
+ }
262
+
263
+ .products-card {
264
+ overflow-x: auto;
265
+ -webkit-overflow-scrolling: touch;
266
+ }
267
+
268
+ .table {
269
+ min-width: 720px;
270
+ }
271
+
272
+ .table thead th {
273
+ font-size: 0.9rem;
274
+ white-space: nowrap;
275
+ }
276
+
277
+ .table tbody td {
278
+ font-size: 0.92rem;
279
+ }
280
+
281
+ .status {
282
+ padding: 4px 10px;
283
+ font-size: 0.8rem;
284
+ }
285
+
286
+ .stock-normal,
287
+ .stock-critical {
288
+ font-size: 0.9rem;
289
+ }
290
+
291
+ td:last-child,
292
+ td:nth-last-child(2) {
293
+ padding: 8px 6px !important;
294
+ }
295
+
296
+ #editProductBtn,
297
+ #removeProductBtn {
298
+ display: block;
299
+ width: 100%;
300
+ margin-bottom: 6px;
301
+ padding: 8px;
302
+ font-size: 0.88rem;
303
+ }
304
+
305
+ .table-footer {
306
+ flex-direction: column;
307
+ align-items: flex-start;
308
+ gap: 12px;
309
+ padding: 16px 12px;
310
+ }
311
+
312
+ .pagination {
313
+ width: 100%;
314
+ justify-content: center;
315
+ margin-top: 8px;
316
+ }
317
+
318
+ .pagination button {
319
+ min-width: 32px;
320
+ padding: 6px 8px;
321
+ font-size: 0.9rem;
322
+ }
323
+
324
+ .modal-wrapper {
325
+ top: 0;
326
+ left: 0;
327
+ transform: none;
328
+ width: 100%;
329
+ height: 100%;
330
+ border-radius: 0;
331
+ padding: 20px 16px;
332
+ overflow-y: auto;
333
+ box-sizing: border-box;
334
+ }
335
+
336
+ .modal-data {
337
+ max-width: 100%;
338
+ }
339
+
340
+ .form-row {
341
+ flex-direction: column;
342
+ gap: 16px;
343
+ }
344
+
345
+ .form-row .form-group {
346
+ width: 100%;
347
+ }
348
+
349
+ .modal-btns {
350
+ flex-direction: column;
351
+ gap: 12px;
352
+ }
353
+
354
+ .cancel-btn,
355
+ .save-product-btn {
356
+ width: 100%;
357
+ padding: 12px;
358
+ font-size: 1rem;
359
+ }
360
+
361
+ .modal-overlay {
362
+ display: none;
363
+ }
364
+ }
@@ -0,0 +1,120 @@
1
+ /* //////// Sign In //////// */
2
+
3
+ .card {
4
+ background-color: white;
5
+ border: 1px solid var(--border-soft);
6
+ box-shadow: var(--shadow-md);
7
+ }
8
+
9
+ .left-Side {
10
+ background-color: #6d0dfd0d;
11
+ }
12
+
13
+ .bg .logo div {
14
+ width: 40px;
15
+ height: auto;
16
+ background-color: var(--primary);
17
+ margin: var(--space-1);
18
+ border-radius: var(--radius-sm);
19
+ }
20
+
21
+ .bg .logo p {
22
+ color: var(--text-over);
23
+ margin: var(--space-1);
24
+ }
25
+
26
+ .bg .card-text,
27
+ .bg .footer-card {
28
+ color: #475569;
29
+ }
30
+
31
+ .loginForm .card-text {
32
+ color: var(--text-header);
33
+ }
34
+
35
+ .card-body img {
36
+ width: 100%;
37
+ height: 250px;
38
+ }
39
+
40
+ .chartUnderImg {
41
+ width: 100%;
42
+ height: 100%;
43
+ background: var(--secondary-gradient);
44
+ z-index: 2;
45
+ }
46
+
47
+ .bar1,
48
+ .bar2,
49
+ .bar3,
50
+ .bar4,
51
+ .bar5,
52
+ .bar6 {
53
+ width: 15%;
54
+ }
55
+
56
+ .bar1 {
57
+ background-color: rgba(109, 13, 253, 0.4);
58
+ }
59
+
60
+ .bar2 {
61
+ background-color: rgba(109, 13, 253, 0.6);
62
+ }
63
+
64
+ .bar3 {
65
+ background-color: rgba(109, 13, 253, 0.3);
66
+ }
67
+
68
+ .bar4 {
69
+ background-color: var(--chart-primary);
70
+ }
71
+
72
+ .bar5 {
73
+ background-color: rgba(109, 13, 253, 0.5);
74
+ }
75
+
76
+ .bar6 {
77
+ background-color: rgba(109, 13, 253, 0.2);
78
+ }
79
+
80
+ .circle1,
81
+ .circle2,
82
+ .circle3 {
83
+ width: 5%;
84
+ height: 5%;
85
+ }
86
+
87
+ .circle2,
88
+ .circle3 {
89
+ margin-left: -10px;
90
+ }
91
+
92
+ .circle1 {
93
+ background-color: #e2e8f0;
94
+ }
95
+
96
+ .circle2 {
97
+ background-color: #cbd5e1;
98
+ }
99
+
100
+ .circle3 {
101
+ background-color: #94a3b8;
102
+ }
103
+
104
+ .btn-sign {
105
+ color: var(--text-white);
106
+ background-color: var(--primary);
107
+ }
108
+
109
+ .btn-sign:hover {
110
+ box-shadow: 0px 4px 6px -4px #6d0dfd40;
111
+ background-color: var(--primary-hover);
112
+ color: var(--text-white);
113
+ }
114
+
115
+ .incorrect{
116
+ color: red;
117
+ font-size: 18px;
118
+ font-weight: bold;
119
+ text-align: center;
120
+ }