Диплом, часть 1. Главное начать
Итак, 4 курс. В конце этого учебного года надо защищать диплом.
За процессом написания диплома надо как-то наблюдать, ну а чтобы как-нибудь потом порефлексировать, буду сюда писать небольшие посты.
В любом деле самое сложное — начать. Благо, начать писать диплом мне помог Hacktoberfest. А как именно — я рассказал на последнем митапе WebPurple.
В целом, всё, что я получил от Open Source сообщества — заготовки общих концепций. Нужно переходить к конкретики.
Результатом моего диплом, в теории, должно быть готовое программное обеспечение, решающуе какую-либо проблему. Моя тема — “ПО для организации мероприятий”. Под мероприятиями подразумеваются митапы, конференции, etc. Тема несложная, что и как должно работать я понимаю, поэтому с продумыванием реализации проблем возникнуть не должно.
С технологиями я решил чуть-чуть подзагнаться (хотя мог бы взять PHP и нашлёпать за день), поэтому буду писать диплом с надеждой изучить что-то новое и закрепить знания в том, что знаю.
На клиенте у меня будет типичная связка React + Redux, к которым я прикручу TypeScript (ибо давно хотел его подробно пощупать), а так же SASS (чтобы стили просто писались).
На сервере будет NodeJS и Epress, а в качестве БД — MongoDB с Mongoose. Этот стек серверных технологий мне кажется наиболее подходящим для текущей задачи, да и он мне интересен сильнее других.
Так как относительно недавно я открыл в себе интерес к DevOps, то всё это должно быть максимально автоматизировано, тестироваться, деплоиться и выполнять трюки само. Для этого я планирую использовать GitLab CI (потому что он клёвый).
Именно с CI/CD я и начал. Попытался сделать конфиг, который бы деплоил приложение на Express на Heroku. Вышло что-то типа этого:
stages:
- heroku
before_script:
- apt-get update -y
- apt-get install apt-transport-https -y
deploy:
stage: heroku
script:
- apt-get update -yq
- apt-get install rubygems ruby-dev -y
- gem install dpl
- dpl --provider=heroku --app=el-dev --api-key=$HEROKU_API_KEY
К моему удивлению всё это с первого раза задеплоилось и заработало, исключая SSL-сертификаты, но это уже проблемы моего конфига Cloudflare.
На этоп часть первая окончена, следующим шагом планирую написать все конфиги (babel, webpack, etc) для development и production.
Production-билд будет крутиться на diploma.ifedyukin.ru.