- make new virutalenv with python3
- install django and create sample project (with name "sample")
- create git repo inside project's root folder
- pull this repo to github.com
- to configure django project use https://github.com/jazzband/django-configurations/
- create abstract super class "CoreModel" for models with fields:
- enabled: bool
- created: datetime: "auto now" when create
- updated: datetime: "auto now" when update
- create model classes which implements "CoreModel":
- Visit
- query: string
- Feedback
- subject: string
- body: text
- email: email
- ip_address: string
- Visit
- create custom middleware and store data in the "Visit" model
- log query string for each request (if there is query string)
- in request "http://localhost:8000/abc/?p1=1,p2=2" the string should be "p1=1,p2=2"
- install and integrate django-rest-framework: http://django-rest-framework.org
- make serializer and viewset (use viewsets.ReadOnlyModelViewSet) class for each of 2 model classes
- implement those endpoints under http://localhost:8000/api/
- create admin class for each of 2 model classes and implement there:
- list_display (pk, ...)
- list_filter (created, updated, enabled)
- search
- implement form for Feedback model in homepage (http://localhost:8000)
- use forms.ModelForm
- implement some kind of "success" message when form is submitted successfully
- all fields (subject, body, email) are required
- also store user's ip_address value
- install Telegram client (if you aren't already) and create Telegram bot:
- install and setup python lib to work with Telegram
- install and setup Celery, create "shared_task":
- send Telegram message to yourself each time the model "Feedback" is created
- message body should contain "subject", "body", "email" and "ip_address"
- store pip installed packages in
{PROJECT_DIR}/requirements.txt
- pull changes to github.com and send me a link to your repo
-
-
Save virgiliu/46599ee6632b6ba85e3c81cb840011dc to your computer and use it in GitHub Desktop.
Basic Django Skills Test
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment