/CSC-365-fullstack-app-III

🍀 Version 3.0 applies graph theory to form up graphs based on geographical distances, and utilize Dijkstra's algorithm to find the shortest path (weighted by similarity rate) between two chosen nodes in the graph.

Primary LanguageJava

CSC-365 fullstack app 3.0

Overview

  • This project is the extention of the CSC-365-fullstack-app 1.0 and CSC-365-fullstack-app 2.0

  • Version 1.0 is a full-stack web application that works like a search engine which will find the similar and relevant businesses (in a json dataset from Yelp) based on user's inputs using Cosine Similarity Metric.

  • Version 2.0 allows users to fetch 5-10 clusters randomly from the Spring Boot server. It then feed the clusters to React+D3.js (Data-driven document) in the FE to form up a hierarchical tree.

  • This new extended version 3.0 applies graph theory to form up graphs based on geographical distances, and utilize Dijkstra's alogorithm to find the shortest path (weighted by similarity rate) between two chosen nodes in the graph.

Project Showcase

React D3 Graph showcase

RD3G_showcase.mp4

Dijkstra Shortest Path showcase

Dijkstra_shortest_path.mp4

Technologies:

Backend -- Engine

  • Java Springboot
  • Customized B-Tree
  • Java NIO/IO
  • Clustering using K-Means
  • Customized HashTable
  • Cosine Similarity
  • MySql Database / Docker image
  • Haversine formula
  • Graph theory (Dijkstra's algorithm, Union-Find Disjoint Set, Weighted Graph)

Frontend -- client

  • Vite/React--TypeScript
  • React D3 Graph
  • Tailwindcss
  • Material-UI

Resources

Version 3.0

Version 2.0

Version 1.0