Skip to content

Technical Documentation

Ali Dorri edited this page Dec 31, 2024 · 27 revisions

We define our technical guidelines, information, and decisions here.

Coding Conventions

Folder Structure

root
├── assets # Include art files like fonts, images, etc
├── components
├── pages
├── scripts
├── styles
├── components.js
├── global.css
└── index.html

Technology Stack

Frameworks, tools, and technologies we use for our project:

  • Pure HTML, CSS, and JavaScript.
  • Git and GitHub for version control.

Git Conventions

Testing

Test cases and tools... will be completed

Deployment & Infrastructure

How to build and deploy our website... For now, we build and deploy manually. In the future, we can learn and use GitHub's CI/CD for automatic processes.

Semantic Versioning

For versioning of our products, we use Semantic Versioning. In simple terms, our product versions will be MAJOR.MINOR.PATCH like 0.1.0 or 1.4.2.

  • MAJOR version when you make incompatible API changes.
  • MINOR version when you add functionality in a backward compatible manner.
  • PATCH version when you make backward compatible bug fixes.

Development Workflow

Workflow

  • Developer is assigned a task.
  • Developer starts task
    • Moves the task from ToDO to Doing.
    • Creates a feature branch of the develop branch with the developerName-taskName name.
  • Developer finishes the task
    • Moves the task from Doing to Done.
    • Creates a pull request in the GitHub.
  • Tech Lead reviews the task
    • If it's OK
      • Moves the task from Done to Accepted.
      • Accepts pull request: Merges the feature branch with the develop branch.
    • If it's not OK
      • Moves the task from Done to Rejected.
      • Tells the developer the issues to fix: With comments on the task, pull request, telegram, or on meets.
      • Developer can start fixing the issues
        • Moves the task from Rejected to Doing.
        • Continues working on the feature branch.

Clone this wiki locally