- the output is an iteratively more accurate set of objects that correspond to reality
-**Database**: for ease of retrieving, updating, and storing Objects and corresponding features, we use a MongoDB database
- the output is storage for those objects from object tracking
## MongoDBInteraction.java
-**MongoDB Connection**: Connects to a MongoDB cluster using a secure URI, targeting a specific database and collection for object storage.
-**Data Retrieval**: Implements methods to fetch the latest set of objects from the database and convert them from MongoDB documents to Java objects.
-**Data Update**: Provides functionality to update or insert new object sets into the database using MongoDB's upsert feature.
-**Serialization**: Handles the conversion of complex Java objects to MongoDB documents suitable for storage.
## BackendJava.java (Spring Boot Application)
-**Spring Boot Setup**: Configures and launches a Spring Boot application, defining RESTful endpoints.
-**REST API Controllers**: Defines multiple endpoints to interact with the MongoDB database and return object sets in JSON format. Includes error handling and response customization.
-**Process Control**: Includes endpoints to initiate processing tasks and respond with process results.
## WebMvcConfig.java
-**CORS Configuration**: Sets up CORS policy allowing unrestricted access from specified origins, facilitating cross-origin requests during development.
## ObjectSetController (part of BackendJava.java)
-**Endpoint Configuration**: Manages API endpoints for retrieving and manipulating object data, structured in JSON format for ease of use in client applications.
## BackendService (part of BackendJava.java)
-**Service Endpoints**: Offers utility endpoints for basic web interactions and processes related to object detection.
-**Static Content Management**: Serves static resources like HTML, CSS, and JavaScript files, facilitating frontend interactions.
-**GUI**: for an outward facing display of our work, we implemented a Javascript UI, that creates a server, such that we can view the system's output in any browser.
- the output guides the user through the process of making the application as well as provides a conceise view of the data produced by the server side code.
- A colored point cloud is generated in the front end from the raw data sent by the back end. This is done by a library called plotly by converting the color and position values of each point to dots on the 3d point cloud.