Technologies
List of technologies (framework, dependencies and tools) used in the project.
Core Technologies
We utilize the following frameworks for our backend development to create scalable and maintainable server-side applications.
Node.js
A JavaScript runtime built on Chrome's V8 JavaScript engine, enabling the building of fast and scalable server-side applications.
NestJS
A progressive Node.js framework for building efficient and scalable server-side applications with a modular architecture.
Frameworks and Libraries
Express
A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
TypeScript
A superset of JavaScript that adds static types, enhancing code reliability and maintainability.
Database
TypeORM
An Object-Relational Mapping (ORM) library for TypeScript and JavaScript that simplifies database interactions and provides a powerful query builder.
PostgreSQL
A powerful, open-source object-relational database system known for its reliability, robustness, and performance.
Authentication and Authorization
JWT (jsonwebtoken)
A library for working with JSON Web Tokens, aiding in user authentication and authorization.
Validation and Parsing
class-validator
A library for input validation and sanitization based on decorators and metadata reflection.
class-transformer
A library for object transformation and serialization using decorators and reflection.
Logging and Monitoring
Pino
A fast and feature-rich logging library for Node.js applications, providing high performance and low overhead.
Testing
Jest
A comprehensive testing framework for JavaScript, supporting unit, integration, and end-to-end testing.
Supertest
A library for testing HTTP servers, allowing you to make requests and assert responses in your tests.
Package Management
PNPM
A fast, disk space-efficient package manager for JavaScript, improving the installation process and dependency management.
Linting and Formatting
ESLint
A pluggable linting utility for JavaScript and TypeScript, helping to identify and fix code quality issues.
Prettier
An opinionated code formatter that enforces consistent style by parsing code and reprinting it with its own rules.
Git Hooks and Commit Management
Husky
A tool for managing Git hooks, allowing you to run scripts during various Git stages.
Commitlint
A tool for linting commit messages, ensuring they adhere to a conventional format.
Commitizen
A command-line tool for formatting commit messages according to the conventional commit standard.
Lint-staged
A tool for running linters on staged files, ensuring that only clean code is committed.
DevOps and CI/CD
GitHub Actions
A CI/CD service that automates workflows, allowing you to build, test, and deploy your code directly from GitHub.
Docker
A platform for developing, shipping, and running applications in containers, providing an efficient and consistent environment for deployment.
Renovate
A tool for automating dependency updates, keeping your project up-to-date with the latest versions.
Documentation
Markdown
A lightweight markup language with plain-text formatting syntax, used for writing documentation and README files.
VuePress
A static site generator that simplifies the creation of documentation sites, providing a clean and responsive design.
Miscellaneous
env-cmd
A utility for executing commands using environment variables from a file, simplifying the management of environment configurations.
Conclusion
These tools and frameworks are integral to our development process, ensuring that we can build high-quality, scalable, and maintainable software efficiently.