Skip to content

Quest-maker-team/quest-maker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuestMaker

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.

More information

Staff

Rules for git workflow

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 naming rules

Branch name consist of lowercase letters words separated by _.

Commit rules

Commit description structure:

<Verb infinitive> {grammatical modifiers for subject} <subject> #<Issue number>

Pull request rules

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.

Naming

In the end of pull request name must be #<Isssue number>.

Development tools

  • 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

Code style

Python backend

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

HTML, CSS

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)

JavaScript

We use Google JavaScript Style Guide with small changes:

  • Block indentation: +4 spaces (4.2.1)
  • Indent continuation lines at least +8 spaces (4.5.2)
  • Maximum line length is 120 characters (4.4)