# Introduction
# What will you learn here?
In this workshop, we will:
- Build a Node.js REST API from scratch using NestJS framework
- Connect your API with a Database to save and retrieve data using entities
- Create a file upload API to store images in the cloud
- Deploy your API using Azure Serverless platform
Because it's better to learn new things while having fun, we will build a social service API to share fun facts and pictures about your favorite pets! π±πΆπΉπ°
# Meet the stack
Our focus will be centered on NestJS and Azure. If you never used these tools before don't worry, it's the perfect chance to get to know them. Here is a quick presentation for starters.
# NestJS (docs.nestjs.com)
NestJS is a framework for building efficient, scalable Node.js server-side applications. It is built with and fully supports TypeScript, and uses the latest design patterns and best practices allowing to built robust modern apps easily.
Under the hood, NestJS makes uses of Express HTTP server but can optionally be configured to use Fastify, allowing you to leverage the huge ecosystem of their associated libraries.
Did you know?
NestJS leverages similar concepts, features, architecture and tools as Angular framework, but tailored for Node.js backend development.
# Azure (azure.microsoft.com/overview)
Azure is Microsoft's cloud computing offer for building, testing, deploying and managing applications and services. The platform provides IaaS, PaaS and SaaS solutions with an ever-extending range of services.
For this workshop, we will use serverless services to store data and host our application without having to manage any underlying infrastructure. In particular:
- Azure Functions to deploy application code
- Azure Cosmos DB, a managed distributed NoSQL database to store our entities
- Azure Blob Storage to store image files
# Nitro (nitr.ooo)
Nitro is a growing set of open-source developer tools to help you build, deploy and scale Node.js apps on Microsoft Azure.
It's designed in particular to leverage Azure Serverless platform to be able to push your app in production in no time, at a reduced cost.
0. Prerequisites β