A simple Node / Vue Fullstack Device Management as part of the interview process with TympaHealth.
The purpose of this exercise is to help any store manager to have a friendly interface which allows them to manage any items in their shop. It should also help them find an item by brand or model, and to see more details using a simple search.
- Backend RESTful API using NodeJS with any Framework
- Persistence using PostgreSQL or MySQL database
- Dockerised Environment
- Frontend using VueJS with Vuetify
- Frontend Tabular UI using the Data Tables component
- The
GET
endpoint for the devices in the Backend API service is not paginated. This may introduce memory and latency issues depending on the number of devices added to the database.
- Unit testing. Both Frontend and Backend lack of any unit testing of their core functionality.
- Better configuration of both backend and frontend services. For example, currently the Frontend has the Backend API url hardocded instead being configuratble through environment variables for example.
Before you can run the stack, you will need to install the following software on your system:
To run the stack, follow these steps:
- Clone the repository to your local machine or untar the project to a directory (referred to as project-directory).
- Open a terminal and navigate to the project directory.
- To run the stack, execute the following command. This command will build the production version of the stack and execute four services: the backend api, the frontend, the database and the proxy.
docker compose up
- To clean up after running the stack, run the following command:
docker compose up down --rmi all
This will stop the services and remove the images.