This project is written in Node.js, and docker, make sure you have these installed.
To run this project, use the following command:
npm install
This will install all necessary packages that are used within this project.
Then, run the following command:
docker-compose up
If you are willing to make changes to the code and apply them to the images, you can use the following command:
docker-compose up --build
This allows you to build the program and start the program.
After the program starts running, go to http://localhost:3000/.
My project has a simple item model that contains a name and description, where the ID is auto-generated by mongoose, and it is also accessible by the frontend. On /containers page, after connecting/disconneting database, you should refresh the page to see updated result. List of items are ordered by time, the most recent item will be at the top of the list
The API includes:
- Get the item list and display it on the main page.
- Post a new item to the item list and display it immediately on the main page after it is added.
- Delete an item by ID and display the updated list on the main page after it is deleted.
- Get an individual item by ID. After clicking a certain item, it should redirect to a new page
/item/:id
and display the ID, name, and description for that item. - Get container status in
/containers
. These pages should be able to return the current states for both running containers. - Connect and disconnect button to start and stop MongoDB manually, program is getting container by ID, so should work with different devices.
The following features are planning to be worked on:
- Use Terraform to start and stop the Mongo DB container and have the server invoke Terraform instead of Docker directly.(Stuck here with mounting issue)
- Use AWS to deploy the server and make it run on the cloud. (Haven't started)
- To have a login function available to users.(Nice to have for future project)
- More