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.
Things to do
- Create a form to allow the user to enter
- Name
- Gender
- Phone
- Address
- Nationality
- Date of birth
- Education background
- Preferred mode of contact (select one from email, phone, none)
- You can be creative with the fields. The user should be allowed to select the date of birth from any standard date-picker package
- Add relevant front-end validation to the form
- After form submission, if the fields are valid, the input data should be stored in the database of your choice.
- 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.
- As the task is pretty easy, we will look into the coding design part of things, just making it work is not enough.
- Naming for methods, variables, file names, and folder structures will be checked.
- 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.
- Code it so that the next person who continues that work will like it and not hate the code. Think maintainability of code.
- Tip: First break your task into logical parts then code it. (First, solve the problem. Then write code. - John Johnson)
- Tip: Commented code is bad, relevant comments about code will be necessary.
- This task needs to be completed and submitted back within 7 days of receiving it, if not stated otherwise.
- 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.
- 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.
- Use of any extra open-source library or package is allowed.
- 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.
- 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.