Skip to content

HTTP/HTTPS server to host and process role play in summer camp (Hope)

Notifications You must be signed in to change notification settings

AshFungor/hope-project

Repository files navigation

Hope Project

Overview

Проект для лагеря Надежда

Смена 2024

Поминальник на будущее:

  • система переводов и платежей должна быть обособленной, логировать все действия с собой, работать исключительно через API, а не прямыми манипуляциями в базе
  • подключение кэша запросов, особенно для аналитики (redis)
  • нужно дополнительное поле для разделения автоматического/ручного потребления
  • механика потребления у городов
  • аналитику стоит собрать и выделить в отдельное место
  • основную логику хочется видеть на golang, на flask оставить только статистику (**)
  • необходима нормальная система налогов (*)
  • необходимо изменить цепочку user -> city -> prefecture
  • нужно добавить больше функций просмотра для пользователей
  • (**) как минимум нужно нормально зарефакторить каталоги, в идеале golang конечно
  • назначение на должности
  • (*) в случае ручной системы ввести назначение платежа в транзакции
  • потребление товаров должно быть обратимым и легко валидированным
  • бонусы надо уметь зачислять/списывать через UI
  • к платежам надо уметь привязывать дополнительные данные для определения назначения платежа
  • транзакции пользователей нужно уметь смотреть и манипулировать с ними через UI

Как работать

Основная ветка - master. Напрямую в нее вносить изменения нельзя, поскольку мы используем ее как основную работающую и если кто-то неаккуратно в ней сломает, то будет неприятно :)

Для начала работы нам нужно склонировать репозиторий.

git clone https://gitverse.ru/ser1a/hope-project && cd hope-project

Теперь мы можем начинать работать. Для этого необходимо отвести новую ветку (my_branch - лучше переименовать - рекомендуем *Ник*/*название ветки*). После можно начинать вносить изменения, а затем закоммитить. Обратите внимание, удалять файлы стоит с помощью git rm, а также иногда нужно добавлять файлы по отдельности (из тех которые я знаю - скрытые начинающиеся с .)

git checkout -b my_branch
# do your stuff
git add -u
git commit -m "my commit"
# check status
git status

Кстати если вдруг нужно откатиться до последнего коммита (убрать все ваши новые изменения, которые вы не закоммитили) можно использовать

git stash

Вернуть их обратно можно так

git stash pop

Обращайте внимание на вывод git status, очень важно, чтобы все изменения были staged. В противном случае, в выводе будет указано, какие файлы не находятся а индексе. После того, как вы внесли изменения, можно отправлять изменения в наш репозиторий, чтобы они попали в master ветку.

git push --set-upstream origin my_branch

Перед отправкой и мерджем изменений важно обновить вашу ветку на последнюю версию master'а, чтобы не пришлось решать конфликты при мердже. Делаем это так:

git rebase master -i

Вам предложат выбрать коммиты для rebase на master, обычно выбираем все и ждем результата работы команды. Если вам не повезло и будут конфликты, то сочувствую. Для облегчения вашей участи имеет смысл заскашить все коммиты в вашей ветке (сжать все сделанные вами коммиты в один). Делаем (сначала абортим предыдущий ребейз)

# abort recent rebase
git rebase --abort
git log

Смотрим id коммита в master, откуда отводили ветку. Теперь

git reset --soft commit_id
git add -u
git commit -m "squash"
# check if everything was added
git status
# if all ok, rebase
git rebase master

Решаем все конфликты, потом

git push --force

В UI репозитория делаем pr (в гитверс называется запрос вроде) и мержим. (Не забываем про нормальные названия пожалуйста!!!)

Если что можете меня пинговать - @AshFungor или писать в беседу, поможем.

Установка

alias python=python3
python -m venv ./venv --symlinks --clear
venv/bin/pip -V && venv/bin/pip install -r requirements.txt

Запуск

Все бинари должны лежать в venv/bin! И запускать их надо оттуда

venv/bin/flask run

Можно и с докером. Чтобы сбилдить образ:

docker build -t hope:0.0 .

И запустить (-p маппит порт 5000 контейнера на порт 5000 хоста):

docker run -p 5000:5000 hope:0.0

Далее заходим на 127.0.0.1:5000 и наслаждаемся :) Если образ не робит писать мне: @AshFungor

Таски в CI

Пока доступен один раннер и простая таска

About

HTTP/HTTPS server to host and process role play in summer camp (Hope)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published