ungleich_hack_3/README.md

50 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ungleich_screening_task
A micro project proposed as a screening task for the [Senior Django Developer](https://ungleich.ch/en-us/cms/jobs-ungleich/) position at [ungleich](https://ungleich.ch/).
## Overview
Per requirements, the project behaves differently depending on the version of the [Internet Protocol](https://en.wikipedia.org/wiki/Internet_Protocol) used to navigate it:
- Via IPv4, it shows a static page saying "Sorry, only reachable by IPv6"
- Via IPv6, it shows a friendly cat picture
To determine which version is used, we examine the visitors IP address. This is done in a [middleware](require_ipv6) that responds with an error page to non-IPv6 requests.
If the request goes through, a simple [application](friendly_cat) can be accesses, with a single index view showing a friendly picture of a cat.
## Demo
A live demo of the project is available at: [https://ungleich-screening-task.coox.fr/](https://ungleich-screening-task.coox.fr/).
It is served by [Gunicorn](https://gunicorn.org/) through [Caddy](https://caddyserver.com/).
## Usage
To install and run the project on your own computer, you must ensure that the following prerequisites are fulfilled:
- your operating system [supports IPv6](https://en.wikipedia.org/wiki/Comparison_of_IPv6_support_in_operating_systems)
- you can run [Python](https://www.python.org/) version 3.6 or above (it is recommended to use a [virtual environment](https://docs.python.org/3/tutorial/venv.html)), with:
- [`pip`](https://pip.pypa.io/)
- [`setuptools`](https://pypi.org/project/setuptools/)
- you can run the [`make`](https://www.gnu.org/software/make/) command
Proceed to [cloning](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) this repository, and navigate to its directory.
Then, execute the following command to install the projects required modules:
```sh
make install
```
Then, execute the following command to run the project using Djangos built-in web server:
```sh
make run
```
You can then navigate the project at [http://localhost:8000/](http://localhost:8000/).
## Hacking
See [CONTRIBUTING](CONTRIBUTING.md) for developer documentation.