1ая версия диплома (защищено на 5). Вторая версия (в разработке) - edsm-v2
Vue.js / Django (rest framework) проект
-
Скачиваем проект
-
Скачиваем питон 3.7
-
Скачиваем virtualenv (я просто в synaptic скачала рандомный virtualenv)
-
Для пакета psycopg2 нужны эти штуки, скачиваем их sudo apt-get install python3.7-dev sudo apt-get install -y libpq-dev
-
Создаем venv, у меня так создается (в корне проекта):
virtualenv --python=/usr/bin/python3.7 venv
Указываем версию питона, чтобы точно она заюзалась, а то вдруг у вас еще какие-то версии питона есть, случайно не та может заюзаться при создании, если жестко ее не прописывать в команде выше.
-
апап
Интерфейс в виде скринов показан в самом низу, чтобы не мешаться тут.
Можно не запускать, если нужно тестить только сервер! (приложение в целом тоже можно посмотреть без фронтенда, запустив только сервер, потому что на сервере уже есть папка со всем "скомпилированным" фронтендом)
Не забудьте установить npm! Для того, чтобы проходили запросы на сервер, нужно в браузере отключить cors. Например, в firefox это можно сделать с помощью дополнения "CORS Everywhere". Чтобы посмотреть фронтенд, надо сделать 3 первые команды внизу и зайти на фронтенд.
# перейти в папку с фронтендом
cd frontend
# установить зависимости
npm install
# запустить с горячей перезагрузкой localhost:8080
npm run dev
# построить для продакшена с минификацией
npm run build
# построить для продакшена и посмотреть bundle analyzer report
npm run build --report
Не забудьте установить python!
# установить зависимости
pip3 install -r requirements.txt
# собрать статические файлы, для того, чтобы
# запустить клиент на сервере
python manage.py collectstatic
# миграция таблиц для правильной работы с бд
python manage.py migrate
# Нужно настроить глобальные переменные (для почты, для бд, для
# хранилища амазона и так далее). Все значения секретные, поэтому
# нужно писать разработчику, если он даст - сможете протестировать.
# Ниже пример настройки глобальной переменной. Это для виндовс,
# для юниксов вместо set - export
set EDMS-MAIL-PASSWORD=password
# запустить
python manage.py runserver
# зайти в администратора (данные суперюзера или админа, который есть в
# бд (то есть если если известен аккаунт на edms-mtuci.herokuapp.com и
# он админский) или суперюзера). Первая строка - создание суперюзера
# (если нет админского аккаунта)
python manage.py createsuperuser
http://localhost:8000/api/admin/login/?next=/api/admin/
# зайти в приложение, которое фронтенд
http://localhost:8000
Есть таблица Notif, она связывает документ и пользователя. Отношение связи показывает поле status
Status | Что значит |
---|---|
0 | Владелец |
1 | Не владелец, нужна подпись, очередь еще не подошла |
2 | Не владелец, нужна подпись, очередь подошла |
3 | Подпись есть, владелец подписанного документа видит уведомление |
4 | Подпись есть, владелец подписанного документа НЕ видит уведомление |
5 | Не владелец, подпись не нужна, может только смотреть документ |
6 | В таблице нет, ставится при возвращении документов для конкретного пользователя тем документам, которые были подписаны этим пользователем (чтобы отличить от документов, которые принадлежат пользователю и находятся в уведомлениях "Ваш документ подписали.") |
7 | Подписант отказался подписывать |
Веб-приложение (данные для входа спросить у разработчика, но он может и не дать их)
Панель администратора (данные администратора спросить у разработчика, но он может и не дать их)
Вход (регистрацию делает админ)
Главная, общий доступ (остальные вкладки похожи на "все документы")
Документ не владельца (виден ему, ибо он должен его подписать)
Подписант отказался подписывать и вот это увидел владелец документа
Запрос подписи, письмо на почте
Профиль с уведомлениями (фиолетовое - не прочитано)
Помощь (открывается по ссылке в футере)
Сделала Аня, 2019