Frontend + Backend application that allows you to read, create, update and delete a list of contacts. All the fields are mandatory and there can’t be two contacts with the same email.
NOTICE: You need to have installed Node JS (node version > 12)
If you have decided to clone this repo,:
- Open a terminal in the root folder of your repository.
- Install the local dependencies by executing the following command in the terminal:
npm install
Once we have installed the dependencies, we are going to start the project. To do this, run the following command in the terminal:
npm run serve
This command runs the app in the development mode. Open http://localhost:8080 to view it in the browser.
The project will reload if you make edits.
In this guide you can find the steps to deploy the app.
npm run build
- unit tests
npm run test:unit
- end-to-end tests
npm run test:e2e
A Notion page with a list of resources searched and used to carry out this project, and a kanban board to organize the work.
Despite being made on a Notion page, it's not necessary to have an account to view it.
The project has been made in a single app page, with:
- A table with a list of contacts. Each contact have: First name, Last name, Email, and Phone number. The users will be able to sort the list by First name and Last name
- A history of edits of each contact, accessible by expanding each line of the table
The whole project has been made in Vue.js, using Firebase to build a no-sql database to storage and manage the contacts.
For the styles, I have opted for two ways:
-
The use of Vuetify, as it offers ready-made and responsive Vue components.
-
The use of Sass as a CSS preprocessor, to achieve a more orderly code (since it allows nesting styles).
The tests are made with:
-
Jest-dom and Vue-test-utils for unit tests.
-
Cypress for end-to-end tests.