/technical-assessment-python

Technical Assessment for Python Developer

GNU General Public License v3.0GPL-3.0

Coding task for Software Engineer (Python)

The task is to build a part of a system. It should be done in max 7 days after receiving it if not communicated otherwise.

Task

Things to do

  1. Create a form to allow the user to enter
    1. Name
    2. Gender
    3. Phone
    4. Email
    5. Address
    6. Nationality
    7. Date of birth
    8. Education background
    9. Preferred mode of contact (select one from email, phone, none)
    10. You can be creative with the fields. The user should be allowed to select the date of birth from any standard date-picker package
    11. Add relevant front-end validation to the form
    12. After form submission, if the fields are valid, the input data should be stored in the database of your choice.
    13. The admin user should have the ability to display the records in a nice format and update, delete, and undelete the record from the admin interface.

Things to consider

  1. As the task is pretty easy, we will look into the coding design part of things, just making it work is not enough.
  2. Naming for methods, variables, file names, and folder structures will be checked.
  3. Your git commit history will tell a story of how you thought of the solution please be mindful of it. If you use Pull request to come to your solution it's even better.
  4. Code it so that the next person who continues that work will like it and not hate the code. Think maintainability of code.
  5. Tip: First break your task into logical parts then code it. (First, solve the problem. Then write code. - John Johnson)
  6. Tip: Commented code is bad, relevant comments about code will be necessary.

Rules/Requirements

  1. This task needs to be completed and submitted back within 7 days of receiving it, if not stated otherwise.
  2. You must use Python(Django) as the backend for solving this task. The core logic of the modules should be a redistributable Pypi package and hosted as a separate private repository.
  3. You must have a README.md file in the root, well formatted in markdown (like the one you are reading now) that explains your solution.
  4. Use of any extra open-source library or package is allowed.
  5. You must use git and the proper git branching model to submit this task on a different branch and send us a pull request from your branch to the main branch.
  6. The project should have a docker-compose file and requirements.txt so that we can run the docker container to test the work you have submitted.