Quest maker project, SPbPU 2022.
Consist of 2 parts:
There is telegram bot @QuestMakerBot to play quests. In bot player is able to choose quest and then quest session starts.
Quests are created with web service. Creators make quests with sequence of stations. After creation quest becomes unpublic and only selected users can play it. To make quest public and visible in global list admin review is required. After moderation all users can choose quest to play.
main
branch is a main project branch. Contains current project version.
To send updates make own branch and make commits to it (now from develop brach).
One branch is one issue (there can be agreed exceptions). One commit is one logical action.
After all necessary commits push changes and open pull request (in develop branch). Pull request name contains issue number in the end.
Branch name consist of lowercase letters words separated by _
.
Commit description structure:
<Verb infinitive> {grammatical modifiers for subject} <subject> #<Issue number>
Web service part must be reviewed by Baev Daniil, bot part by Chevykalov Grigory. Baev Daniil and Chevykalov Grigory add their part teammates for review. Baev Daniil and Chevykalov Grigory add each other as reviewers on document tasks. Other reviewers are optional.
All reviewers must approve changes. After that last reviewer or pull request author can merge it.
In the end of pull request name must be #<Isssue number>
.
- Python 3.8 and later for bot and website backend
- Flask framework for website backend
- aiogram framework for telegram bot
- HTML for website markup
- CSS for styling website
- JavaScript for webside frontend scripts
- Node package manager for installing all front-end tools
- Bootstrap front-end toolkit
- jsPlumb libs for visually connect elements on web pages, using SVG
- Webpack static module bundler for modern JavaScript applications
We use PEP 8 with small changes and additions:
- Maximum line length is 120 characters (default for PyCharm)
- Use spaces, no tabs
- Always surround all binary operators with a single space on either side
- Use documentation strings for all modules, functions, classes and methods
- Use english for all docstrings and comments
We use Google HTML/CSS Style Guide with small changes and addition:
- Use 4 spaces for every child element, which starts on a new line (addit to 3.2.1)
- When line-wrapping, each continuation line should be indented at least 8 additional spaces from the original line to distinguish wrapped attributes from child elements. (change in 3.2.2)
We use Google JavaScript Style Guide with small changes: