NodeJS Developer Position Test

Section 1 (GIT)

  1. Write a short paragraph explaining the procedure for cloning a git repository and using the development branch. Show each command used.
  2. Which commands would you use to update a project.
  3. Which commands would you use to commit your work to git server?
  4. Show the steps that you would use to initialise a new git project and commit it to the git server.
  5. Explain what a submodule is.

Section 2 (Dependencies)

  1. Explain what your understanding of a dependency/package manager is.
  2. Show the terminal command to add postgres database dependency to a project.
  3. Show an example of a package.json contents with the moment.js dependency added to it.
  4. Show the commands that you would use to initialise an existing projects npm dependencies to get the project to a running state.

Section 3 (logic and development questions)

Answer the questions based on the following snippet:

Copy to Clipboard

Questions:

  1. What value does the variable “a” hold?
  2. What would happen if attempting to execute this code?
  3. Explain the term “Unit testing”.
  4. Explain the benefits of using abstraction in development.
  5. Look at the following sql statement and explain what is wrong:
Copy to Clipboard

Section 4 (Nodejs and frameworks)

  1. Epicdev uses a NodeJS tech stack using the following frameworks (Vue.js, Nuxt, Vuetify), please research each framework and explain what your understanding of each one is.
  2. Using Nodejs (Vue.js with Vuetify can be used if possible, otherwise standard Nodejs is fine) you will need to create a websytem that allows a user to manage contacts allowing creation, editing and deleting. Each of the following requirements must be met.
    1. Each contact must have the following information.
      1. Name
      2. Surname
      3. Username
      4. Password
      5. Contact information
        1. Email
        2. Home number
        3. Cell number
      6. Notes
        1. Note title
        2. Note description
        3. Note date
    2. The database must use either postgress or mysql.
    3. Deletion must use soft delete (non-permanent) only
    4. Each contact must have a unique identifier using UUID v4
    5. Passwords must be encrypted
    6. Batch deletion must be available
    7. There needs to be a filter option to allow filtering by either name ,surname and email
    8. There must also be a search function that co do partial searches in the following fields.
      1. Name
      2. Surname
      3. Email
      4. Cell number
      5. Note title
      6. Note description

NB: Submission date: Wednesday, 15 September 2021

Submission address: info@epicdev.co.za