A simple, real-time chat service built on Azure cloud infrastructure.
The main purpose of this project is to serve as a learning and exploration platform for Azure cloud services such as:
- Cosmos DB (No-SQL database)
- CosmosDB change feed
- Storage Service
- Blob storage
- Static website
- App Service
- Function Apps
- Communication service (email delivery)
- Front Door (CDN and reverse proxy)
- Service Bus (Planned)
- DNS Zones (Optional)
| Folder | Description |
|---|---|
/backend |
Python FastAPI backend application |
/docs |
Project documentation |
/frontend |
Node.js/Vite TypeScript frontend |
/infrastructure |
Terraform base + Terraform module for Azure services |
/welcome_email_function |
Azure Function for sending welcome emails |
See the documentation in the respective folders for setup instructions:
- Getting Started
- Backend Documentation
- Frontend Documentation
- Infrastructure Documentation
- Architecture Documentation
- Discussion
As this is a learning project, it has several limitations:
- No Authentication: The application uses simple username input without proper authentication.
- Limited Security: Security best practices are not fully implemented.
- No Testing: The project lacks unit tests, integration tests, and end-to-end tests.
- Basic Error Handling: Error handling is minimal and not production-ready.
- No Role-Based Access: Since many users lack full user and permission management in Azure, we use connection strings and user/password for authentication. In a production environment, role-based access and SPNs should be used.
This project does not cover Docker or basic container development. If you are new to these topics, please see the "DevOps Lab Kit" for an introduction:
- Investigate SignalR service.
- Enable user-to-user messaging.
- Make mobile friendly UI.
- Enable automatic login after email confirmation.