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
DockerImageNamewith the DockerHub image repository name. - Add environment secrets for
developmentandstagingenvironments 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 CIjob status checks for PRs. - Add Manual Approval for the
stagingenvironment. - 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
stagingdeployment requires manual approval.