This document provides definitions for common terms and acronyms used throughout Bayat Development Conventions and projects.
Accessibility (a11y): The practice of making websites, tools, and technologies usable by people with disabilities.
Agile: A project management approach that involves dividing projects into small pieces or iterations, with frequent reassessment and adaptation.
API (Application Programming Interface): A set of definitions and protocols for building and integrating application software.
Authentication: The process of verifying the identity of a user or system.
Authorization: The process of determining whether a user has permission to access a resource or perform an action.
ADR (Architecture Decision Record): A document that captures an important architectural decision made along with its context and consequences.
AWS (Amazon Web Services): A cloud computing platform provided by Amazon.
Backend: The server-side of an application that handles business logic, database operations, and authentication.
BDD (Behavior-Driven Development): An agile software development process that encourages collaboration between developers, QA, and non-technical participants.
Branch: In Git, a parallel version of a repository, used to develop features, fix bugs, or experiment without affecting the main codebase.
Bug: An error, flaw, or fault in a computer program that causes it to produce an incorrect or unexpected result.
Build: The process of converting source code files into standalone software artifacts that can be run on a computer.
CI/CD (Continuous Integration/Continuous Deployment): Development practices that involve frequently integrating code changes and automatically deploying them to production.
C4 Model: A lean graphical notation technique for modelling the architecture of software systems at different levels of abstraction (Context, Containers, Components, Code).
CLI (Command Line Interface): A text-based interface used to interact with software and operating systems.
Cloud Computing: The delivery of computing services over the internet, including servers, storage, databases, networking, and software.
CMS (Content Management System): Software that allows users to create, manage, and modify content on a website without specialized technical knowledge.
CORS (Cross-Origin Resource Sharing): A security feature that allows or restricts web applications running at one origin to request resources from a different origin.
CRUD: Create, Read, Update, Delete - the four basic operations of persistent storage.
Conventional Commits: A specification for adding human and machine-readable meaning to commit messages.
DevSecOps: An extension of DevOps that integrates security practices throughout the software development lifecycle.
Dependency: An external resource, library, or package that a project relies on.
Deployment: The process of making a software application available for use.
DevOps: A set of practices that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle and provide continuous delivery.
Docker: A platform for developing, shipping, and running applications in containers.
DOM (Document Object Model): A programming interface for HTML and XML documents that represents the page as nodes and objects.
DRY (Don't Repeat Yourself): A principle of software development aimed at reducing repetition of code.
Endpoint: A specific URL in a web API that represents an object or collection of objects.
Environment: A system in which an application runs, such as development, staging, or production.
ESLint: A static code analysis tool for identifying problematic patterns in JavaScript code.
Event-Driven Architecture: A software architecture pattern promoting the production, detection, consumption of, and reaction to events.
Feature Flag: A technique that allows features to be enabled or disabled at runtime without deploying new code.
Framework: A reusable set of libraries, components, or tools that provide a foundation for developing software applications.
Frontend: The client-side of an application that users interact with directly.
Full-Stack: Referring to development that encompasses both frontend and backend aspects of an application.
Git: A distributed version control system for tracking changes in source code during software development.
Git LFS (Large File Storage): A Git extension for versioning large files.
GraphQL: A query language for APIs and a runtime for executing those queries against your data.
GUI (Graphical User Interface): A form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators.
Headless CMS: A content management system that provides a way to author content but does not dictate how that content should be presented to users.
Hotfix: A quick fix to address a critical issue in a production environment.
HTTP (HyperText Transfer Protocol): The foundation of data communication for the World Wide Web.
IDE (Integrated Development Environment): A software application that provides comprehensive facilities to computer programmers for software development.
IaC (Infrastructure as Code): The practice of managing and provisioning computing infrastructure through machine-readable definition files.
i18n (Internationalization): The process of designing software so it can be adapted to different languages and regions.
Integration Testing: Testing where individual units are combined and tested as a group.
JAMstack: A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup.
Jest: A JavaScript testing framework.
JWT (JSON Web Token): A compact, URL-safe means of representing claims to be transferred between two parties.
Kubernetes (K8s): An open-source platform for automating deployment, scaling, and management of containerized applications.
Kanban: A visual framework used to implement Agile that depicts work at various stages of a process using cards to represent tasks.
L10n (Localization): The process of adapting a product to a specific country or region.
Library: A collection of reusable code that can be used by programs or other libraries.
Linting: The process of running a program that analyzes code for potential errors.
LTS (Long-Term Support): A product lifecycle management policy where a stable release is maintained for a longer period than the standard version.
Microservices: An architectural approach that structures an application as a collection of loosely coupled services.
Middleware: Software that acts as a bridge between an operating system or database and applications.
Mock: An object that simulates the behavior of a real object in controlled ways.
MVC (Model-View-Controller): A software design pattern commonly used for developing user interfaces.
Mermaid: A JavaScript-based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.
Monorepo: A version control repository that holds the source code for multiple projects or components.
Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine.
NoSQL: A category of database management systems that do not use traditional SQL for queries.
npm (Node Package Manager): A package manager for JavaScript, used to install, share, and distribute code.
OAuth: An open standard for access delegation, commonly used as a way for Internet users to grant websites or applications access to their information.
OOP (Object-Oriented Programming): A programming paradigm based on the concept of "objects" that contain data and code.
ORM (Object-Relational Mapping): A technique for converting data between incompatible type systems in object-oriented programming languages.
Package: A collection of files, modules, or libraries bundled together for distribution.
Pipeline: A set of automated processes that allow code changes to be reliably deployed to production.
Plugin: A software component that adds a specific feature to an existing computer program.
PR (Pull Request): A method of submitting contributions to a project.
PWA (Progressive Web App): A type of application built using web technologies but that delivers an app-like experience.
PlantUML: An open-source tool allowing users to create UML diagrams from a plain text language.
QA (Quality Assurance): A systematic process of checking to see whether a product or service being developed meets specified requirements.
Query: A request for data or information from a database.
RAII (Resource Acquisition Is Initialization): A C++ programming technique where resource use is tied to object lifetime through constructors and destructors.
Race Condition: A behavior that occurs when two or more threads can access shared data and try to change it at the same time.
React: A JavaScript library for building user interfaces.
Redux: A predictable state container for JavaScript apps.
RESTful API: An API that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services.
Rollback: The process of reverting a system to a previous state, often done when a deployment fails.
SaaS (Software as a Service): A software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted.
Scrum: An agile framework for managing knowledge work, with an emphasis on software development.
SDK (Software Development Kit): A collection of software tools and programs provided by hardware and software vendors.
SEO (Search Engine Optimization): The process of improving the quality and quantity of website traffic to a website from search engines.
Serverless: A cloud computing execution model where the cloud provider runs the server and dynamically manages the allocation of machine resources.
SPA (Single Page Application): A web application that loads a single HTML page and dynamically updates it as the user interacts with the app.
SQL (Structured Query Language): A language designed for managing data in a relational database management system.
SSG (Static Site Generator): A tool that generates a full static HTML website based on raw data and templates.
SSR (Server-Side Rendering): The process of rendering web pages on the server and sending fully rendered pages to the client.
Swagger: A tool for documenting RESTful APIs.
SemVer (Semantic Versioning): A formal convention for specifying compatibility using a three-part version number: MAJOR.MINOR.PATCH.
WCAG (Web Content Accessibility Guidelines): Guidelines published by the Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C), the main international standards organization for the Internet.
TDD (Test-Driven Development): A software development process that relies on the repetition of a very short development cycle where requirements are turned into test cases.
TypeScript: A strict syntactical superset of JavaScript that adds static typing.
UI (User Interface): The space where interactions between humans and machines occur.
Unit Testing: A software testing method where individual units of source code are tested to determine whether they are fit for use.
UX (User Experience): A person's emotions and attitudes about using a particular product, system, or service.
Version Control: A system that records changes to a file or set of files over time.
Virtual DOM: A programming concept where a virtual representation of a UI is kept in memory and synced with the "real" DOM.
VM (Virtual Machine): An emulation of a computer system that provides the functionality of a physical computer.
Webhook: A way for an app to provide other applications with real-time information.
Webpack: A static module bundler for JavaScript applications.
WebSocket: A communication protocol that provides full-duplex communication channels over a single TCP connection.
XML (eXtensible Markup Language): A markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.
XSS (Cross-Site Scripting): A type of security vulnerability that allows attackers to inject client-side scripts into web pages viewed by other users.
YAML (YAML Ain't Markup Language): A human-readable data serialization standard.
Yarn: A package manager for JavaScript.
Zero Downtime Deployment: A deployment strategy where the application remains available to users throughout the deployment process.