Introduction

This is my Java course project.

I realized a shared bikes management tool with GUI, which consists of over 2,000 lines of Java code. After loading orders data, a Web Viewer is imbedded to display the bikes’ locations on the map.

I also realized data statistics and analysis, to sum up the order amount, calculate how many times a bike was used in average, etc., and visualize data by charts.

Furthermore, I used k-means algorithm in Java-ML module to cluster the places users like to rent and return the bikes, make a suggestion for the operating staff about where and how many shared bike to relocate for meeting customers' needs.

Section 1 Orders GIS Demonstration

In this interface, the APP would demonstrate the locations of the orders within the user's specified time period.

Orders Locations Map

The map is interactive, users could zoom in and check the detailed orders in any area. GIS_demonstrate GIS_demonstrate

Orders Time Period Specification

After the user specifies the time, you need to click the button to redraw the map. time_selection

Section 2 Orders Statistics

Overall Orders Statistics

This interface shows the total number of orders, the average riding time, the average riding distance, the average number of times the bike is used, and the number of times the user orders each day. statistics

Orders GIS Clutering

Orders are clustered by geographic location and displayed on the map in different colors. Used K-Means algorithm. GIS_clustering GIS_clustering

Orders Time Distribution

Count the order quantity by hour and use a line chart to display the time distribution. statistics_visualization

Section 3 Management Suggestions

Orders Clutering Details

Shows the location , the number of people parked, and the number of people who started riding of each of the cluster results. clustering_details

Reallocation Suggestion

Give advice on how operating staff can reallocate the bicycles, including how many bikes to relocated from which clustered location to another location. Using greedy algorithms to calculate allocations. arrangement_solutions

Technical Notes

The package application contains all the UI codes, and the package models contains the core controller class, including file parsing, clustering and reallocation algorithms. The application should be started by the main method of /src/application/UserInterface.java, and will load the orders file /src/orders/orders.txt by default. The simulated orders data could be generated by /src/orders/Creat_Inputs_Data.py.

The most important class is /src/application/OrdersManager.java. The followings are some of its methods.

  • logistics: Calculate the reallocation routines.
  • writeSelectedLocation2JS: Write the orders locations data to JavaScript file.
  • calcu_basic_stat: Calculate the statistics information.
  • clustering: Cluster the orders by locations.
  • cluster_with_info: Cluster the orders by locations, and calculate statistic information about each cluster.