μblog docs
a reference web application built with Django and Vue.js deployed on AWS with ECS Fargate
Full Stack
This project covers the full technology stack of modern web applications, from frontend to backend to CI/CD and Infrastructure as Code
Twelve-Factor App
This project adheres to the 12Factor App philosophy
Best Practices
This project focuses on implementing a simple application with all of the best practices you would see in a healthy, production-ready application
IaC Rosetta Stone
This project implements the same application architecture using CDK, Terraform and Pulumi
GitHub Actions
GitHub Actions is used for Continuous Integration and Continuous Delivery, including infrastructure and application pipelines
AWS ECS Fargate
This project focuses on running containerized Django applications using ECS Fargate, a serverless compute offering from AWS
FBVs and CBVs
The backend Django app is implemented using Django templates using both functions-based views and class-based views
DRF and GraphQL
The Django app also implements an API using both REST with DRF and GraphQL with Graphene
Quasar Framework
A frontend client built with TypeScript, Vue.js, and Quasar Framework consumes the DRF REST API
Python and TypeScript
Python is used on the backend and TypeScript is used for both the frontend client and infrastructure code
Load testing
The project uses k6 for simulating traffic which can run locally or using GitHub Actions
Developer Experience
This project aims to have a simple and understandable developer experience
compose and venv
Local backend development can be done with both virtual environments and docker compose
Testing and coverage
pytest is used for backend tests, and test coverage is measured with pytest-cov
This documentation covers lots of different topics that are related to various aspects of the project. The project aims to provide two things:
- a working example of a sample web application called μblog.
- in-depth technical guides on how to build each part of the application
At a high level, the documentation can be broken down into the following categories:
- Django application set up
- Local development environment
How to get help
This project is driven by a community of contributors. If you are having trouble with any part of this application, you can get help in a number of ways:
- Join the Discord community: https://discord.gg/pXzCwc6HFHopen in new window
- Start a discussion on the GitHub project: https://github.com/briancaffey/django-step-by-step/discussionsopen in new window