This is a to-do list web application with the basic features of most web apps, such as accounts/login, API, and interactive UI. To complete this task, you will need:
Follow these steps to get the application up and running on your local machine (requires Python 3.8 or higher due to compatibility with Django 4):
pip install -r requirements.txt
Create a database schema:
python manage.py migrate
And then start the server (default is http://localhost:8000):
python manage.py runserver
You can now browse the API or start on the landing page.
Extend the project's GitHub Actions workflow by integrating Docker to build and push images to DockerHub. This CI/CD enhancement involves several key tasks:
- Update your forked repository with your DockerHub username and password.
- Add corresponding secrets to the repository.
- Update
DockerImageName
with the DockerHub image repository name. - Add environment secrets for
development
andstaging
environments for your forked repository. - Use Matrix to run unit tests on different Python versions (3.8, 3.9).
- Use Matrix to run unit tests on different OS types: Ubuntu and Windows.
- You should have the ability to start the workflow manually.
- Add input variables for the manual workflow start:
- Input variables to choose which artifact from the matrix to deploy. (windows-3.8, ubuntu-3.9, etc).
- Add branch protection to the main branch in your fork.
- Add mandatory pull requests and
Python CI
job status checks for PRs. - Add Manual Approval for the
staging
environment. - Allow to run only one workflow per pull request (concurrency).
- New runs should cancel the previous runs.
- Create a Pull Request with the changes.
- Pull Requests description should also contain a reference to a workflow run with successful workflow execution.
- Provide screenshots confirming that branch protection and status checks are working as expected.
- Provide a screenshot confirming
staging
deployment requires manual approval.