Commit 0df56e63 authored by Zane Safi Mroue's avatar Zane Safi Mroue
Browse files

Update README.md

parent a82c2686
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -41,6 +41,29 @@ graph LR;
    - 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.