med-cms 1.0.0 → 1.2.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.
- package/README.md +6 -1
- package/check_env.js +39 -0
- package/env_init.js +5 -5
- package/index.js +3 -0
- package/package.json +15 -3
- package/public/icon/icon.png +0 -0
- package/server/server.js +11 -8
package/README.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
# MED-CMS (v1.
|
|
1
|
+
# MED-CMS (v1.2.0)
|
|
2
2
|
|
|
3
3
|
> ## `med-cms` — Это автономный медецинский движок для управления сетями клиник, персоналом и расписание приймов и т.д. Написан `med-cms` на node.js с использованием **express**, **sequelize**
|
|
4
4
|
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="public/icon/icon.png" alt="MED-CMS Logo" width="200"/>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
5
9
|
### Модуль поставляется со встроенной базой данных, системой разграничения прав доступа на основе **34 медицинских специальностей** и готовым веб-интерфейсом (АРМ Врача, Личный Кабинет Пациента, Панель Суперадминистратора), а также готовой главной страницей
|
|
6
10
|
|
|
7
11
|
---
|
|
@@ -15,6 +19,7 @@
|
|
|
15
19
|
- **Статистика болезней и МКБ-10:** Выделенный независимый справочник заболеваний в базе данных с возможностью автономной миграции и автоматическим инкрементом счетчиков заболеваемости при закрытии приемов врачами.
|
|
16
20
|
- **Возможность управлять новостями** А админ панеле есть форма позволяющая выкладывать новости.
|
|
17
21
|
- **Автозапись в `.env`** При запуске проекта код проверяет есть ли `.env` и настройки в нём, если то записывает настройки в него.
|
|
22
|
+
- **Автопроверка значений** Если вы не изменили значение в `.env` с по умолчанию то ваша консль будет заспамлена
|
|
18
23
|
|
|
19
24
|
---
|
|
20
25
|
|
package/check_env.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const print = require("custom-color-logs").print;
|
|
2
|
+
|
|
3
|
+
(function enforceEnvSecurity() {
|
|
4
|
+
const isDefaultJWT = process.env.JWT_SECRET === "0000";
|
|
5
|
+
const isDefaultPass = process.env.ADMIN_PASSWORD === "1234";
|
|
6
|
+
|
|
7
|
+
if (isDefaultJWT || isDefaultPass) {
|
|
8
|
+
// Красивое стартовое предупреждение
|
|
9
|
+
console.log(
|
|
10
|
+
print.ServerMedSeqError(
|
|
11
|
+
"======================================================",
|
|
12
|
+
),
|
|
13
|
+
);
|
|
14
|
+
console.log(print.ServerMedSeqWarn("ОБНАРУЖЕНЫ НАСТРОЙКИ ПО УМОЛЧАНИЮ!"));
|
|
15
|
+
console.log(
|
|
16
|
+
print.ServerMedSeqWarn(
|
|
17
|
+
"Безопасность системы под угрозой. Данные пациентов уязвимы.",
|
|
18
|
+
),
|
|
19
|
+
);
|
|
20
|
+
console.log(
|
|
21
|
+
print.ServerMedSeqInfo(
|
|
22
|
+
"Пожалуйста, измените значения JWT_SECRET и ADMIN_PASSWORD в .env",
|
|
23
|
+
),
|
|
24
|
+
);
|
|
25
|
+
console.log(
|
|
26
|
+
print.ServerMedSeqError(
|
|
27
|
+
"======================================================",
|
|
28
|
+
),
|
|
29
|
+
);
|
|
30
|
+
const alertInterval = setInterval(() => {
|
|
31
|
+
console.log(
|
|
32
|
+
print.ServerMedSeqError(
|
|
33
|
+
"СРОЧНО СМЕНИТЕ ДЕФОЛТНЫЕ ДАННЫЕ В .env ДЛЯ БЕЗОПАСНОСТИ!",
|
|
34
|
+
),
|
|
35
|
+
);
|
|
36
|
+
}, 4000);
|
|
37
|
+
alertInterval.unref();
|
|
38
|
+
}
|
|
39
|
+
})();
|
package/env_init.js
CHANGED
|
@@ -7,7 +7,7 @@ const defaultEnvContent = `
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
# ==============================================================================
|
|
10
|
-
# MED-CMS (v1.
|
|
10
|
+
# MED-CMS (v1.2.0)
|
|
11
11
|
# ==============================================================================
|
|
12
12
|
|
|
13
13
|
# Специяльный тег инициализации (значение не меняйте)
|
|
@@ -15,18 +15,18 @@ MED_CMS_INITIALIZED = true
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
# Код который будет хешироваться в куки
|
|
18
|
-
JWT_SECRET = 0000
|
|
18
|
+
JWT_SECRET = "0000"
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
# Данные админа
|
|
22
22
|
# Почта админестратора
|
|
23
|
-
ADMIN_GMAIL = x@gmail.com
|
|
23
|
+
ADMIN_GMAIL = "x@gmail.com"
|
|
24
24
|
|
|
25
25
|
# Телефон админестратора
|
|
26
|
-
ADMIN_PHONE = +375 00 00000000
|
|
26
|
+
ADMIN_PHONE = "+375 00 00000000"
|
|
27
27
|
|
|
28
28
|
# Пароль аккаунта админестратора
|
|
29
|
-
ADMIN_PASSWORD = 1234
|
|
29
|
+
ADMIN_PASSWORD = "1234"
|
|
30
30
|
`;
|
|
31
31
|
|
|
32
32
|
function initializeEnvironment() {
|
package/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const logger = require("custom-color-logs").print;
|
|
|
6
6
|
const path = require("path");
|
|
7
7
|
const fs = require("fs");
|
|
8
8
|
require(path.join(__dirname, "env_init.js"));
|
|
9
|
+
|
|
9
10
|
// Оставляем только импорт самого модуля базы данных
|
|
10
11
|
const dbConfig = require(
|
|
11
12
|
path.join(__dirname, "database", "config", "db-init.js"),
|
|
@@ -97,6 +98,8 @@ async function init(app) {
|
|
|
97
98
|
rout.use("/med", r_web);
|
|
98
99
|
rout.use("/med/api", r_api);
|
|
99
100
|
app.use("/", rout);
|
|
101
|
+
console.log(logger.ServerMedInfo("Роуты подключены"));
|
|
102
|
+
require(path.join(__dirname, "check_env.js"));
|
|
100
103
|
}
|
|
101
104
|
|
|
102
105
|
module.exports = init;
|
package/package.json
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "med-cms",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Медицинская мультитендантная CMS на Express и Sequelize (SQLite3) с системой ролей и автоматическим расчетом
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Медицинская мультитендантная CMS на Express и Sequelize (SQLite3) с системой ролей и автоматическим расчетом участков, а также защитой данных",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "node test.js"
|
|
9
9
|
},
|
|
10
10
|
"keywords": [
|
|
11
|
-
"
|
|
11
|
+
"med-cms",
|
|
12
12
|
"cms",
|
|
13
|
+
"medical-engine",
|
|
14
|
+
"clinic-management",
|
|
15
|
+
"hospital-system",
|
|
16
|
+
"arm-doctor",
|
|
17
|
+
"patient-cabinet",
|
|
18
|
+
"miz-by",
|
|
19
|
+
"mkb-10",
|
|
20
|
+
"express-cms",
|
|
21
|
+
"sequelize-cms",
|
|
22
|
+
"sqlite3-autonomous",
|
|
23
|
+
"autonomous-engine",
|
|
24
|
+
"medical",
|
|
13
25
|
"express",
|
|
14
26
|
"sequelize",
|
|
15
27
|
"sqlite3",
|
|
Binary file
|
package/server/server.js
CHANGED
|
@@ -575,28 +575,31 @@ function createMedRouter(jwtSecret) {
|
|
|
575
575
|
phone: process.env.ADMIN_PHONE,
|
|
576
576
|
});
|
|
577
577
|
});
|
|
578
|
-
|
|
578
|
+
web.get("/home", async (req, res) => {
|
|
579
579
|
res.redirect("/med/html/home.html");
|
|
580
580
|
});
|
|
581
|
-
|
|
581
|
+
web.get("/general", async (req, res) => {
|
|
582
582
|
res.redirect("/med/html/home.html");
|
|
583
583
|
});
|
|
584
|
-
|
|
584
|
+
web.get("/h", async (req, res) => {
|
|
585
585
|
res.redirect("/med/html/home.html");
|
|
586
586
|
});
|
|
587
|
-
|
|
587
|
+
web.get("/главная", async (req, res) => {
|
|
588
588
|
res.redirect("/med/html/home.html");
|
|
589
589
|
});
|
|
590
|
-
|
|
590
|
+
web.get("/Главная", async (req, res) => {
|
|
591
591
|
res.redirect("/med/html/home.html");
|
|
592
592
|
});
|
|
593
|
-
|
|
593
|
+
web.get("/Home", async (req, res) => {
|
|
594
594
|
res.redirect("/med/html/home.html");
|
|
595
595
|
});
|
|
596
|
-
|
|
596
|
+
web.get("/login", async (req, res) => {
|
|
597
597
|
res.redirect("/med/html/login.html");
|
|
598
598
|
});
|
|
599
|
-
|
|
599
|
+
web.get("/вход", async (req, res) => {
|
|
600
|
+
res.redirect("/med/html/login.html");
|
|
601
|
+
});
|
|
602
|
+
web.get("/med-login", async (req, res) => {
|
|
600
603
|
res.redirect("/med/html/login.html");
|
|
601
604
|
});
|
|
602
605
|
|