NULLWulf / Oswego-Map-Interface-Data-Server

A MapboxGL-JS driven front-end application meant to provide a visual means of interacting with SUNY Oswego's inventory system. "Inventory" in this case can be anything from a smoke detector to a building itself. Currently, the assets are presented in parent-child relationship with the building's serving as a prent to the smaller assets. Currently, powered by a Spring Boot web server API to serving web content as well as data from a SQL based database.

Home Page:https://oswego-map.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿ—บ๏ธ SUNY Oswego Asset Map Interface ๐Ÿ—บ๏ธ

Currently, a test deployment is running on a Heroku Dyno. A work-flow is set up to keep the dyno awake.

โ“ Description โ“

A MapboxGL-JS driven front-end application meant to provide a visual means of interacting with SUNY Oswego's inventory system. "Inventory" in this case can be anything from a smoke detector to a building itself. Currently, the assets are presented in parent-child relationship with the building's serving as a prent to the smaller assets. The web application is powered by a Spring Boot web server API for serving web content as well as data from a SQL based database.

โ˜‘๏ธ Current Features โ˜‘๏ธ

  • Essential map controls (zoom, rotate, pitch, etc.), Satellite/Stylistic toggle
  • Map meta-data updates on mouse movement, touchscreen interaction
  • Campus region quick navigation drop-down
  • Building Data Context Box
    • Populates upon interaction
    • Populates list of assets belonging to buildings
    • Map centers on building upon click
    • Shows image in heading if image available
  • Asset Data Context Box
    • Populates upon selection via asset dropdown in building context box
    • Refocus parent building (say if map moves out of view)
  • Data Storage
    • Sample data of assets and buildings currently stored in H2 in-memory database
    • Building data also stored in MapBox tileset (GeoJSON)

๐Ÿ”œ Proposed Features ๐Ÿ”œ

  • Optimize for mobile devices
  • Search functionality for finding assets
  • Connectivity with production sized SQL database
    • Use H2 only for testing
  • More useful data layers such as:
    • Specific equipment locations
    • Malfunctioning equipment
    • Live data of equipment metrics
  • Direct integration with AIM Assetworks via API
  • Energy Usage Map (likely its own project)

โ— Known Issues โ—

  • Requires more datasets as well as variety of data to experiment with additional data layers
  • Requires a styling overhaul
  • Limited asset data available currently
    • When larger data sets are available will require more efficient means of sorting, filtering, paging etc.
  • Limited exception handling for both front and back-end

๐Ÿ› ๏ธ Languages, Tools, Tech ๐Ÿ› ๏ธ

๐Ÿ–ฅ๏ธ Tech Stack ๐Ÿ–ฅ๏ธ

Apache  CSS  Chrome  Git  GitHub  Heroku  Java  JavaScript  Jet Brain  HTML  Maven  MapBox  MySql  NPM  Spring  VSCode 

๐ŸŒฑ Environment ๐ŸŒฑ

For a full list of dependencies visit the Dependency Graph.

๐Ÿ—๏ธ Project Directory Structure ๐Ÿ—๏ธ

๐Ÿค Contributing ๐Ÿค

There are numerous ways for this project to be improved upon. We feel one of the best ways to see this project fleshed out and actualized over time is to open it up to open-source contributing in addition to whomever may be working on it on an official basis. Contributions can come from anyone whether they be hobby programmers, staff and or other students at the SUNY Oswego Campus or elsewhere. It's also possible to potentially refactor this project to suit your own campus's needs.

๐Ÿ†˜ Ways To Help ๐Ÿ†˜

  • Conversion of front-end to a well known front-end framework (React, Angular, etc.)
    • Recommend reaching out to repo owner before experimenting and implementing such changes
  • Improvements to anything listed in Current Features
  • Addition of anything listed in Proposed Features
  • Addressing anything listed in Known Issues
  • Modification or Alternative Mapbox Styles

๐Ÿชœ Steps to Contribute ๐Ÿชœ

  1. Fork the Main Repository
  2. Commit and push any changes to forked repository
  3. Create a pull request describing changes, additions, etc. made to project
  4. Wait for repo owner review and acceptance of contribution
    • First time contributors will likely have contribution examined in depth before acceptance
  5. If Accepted, repo owner will merge in main repository
  6. Update forked repository accordingly

โš–๏ธ Contribution Guidelines โš–๏ธ

  • The content of contributions must comply with the SUNY Oswego Code of Conduct
  • Other SUNY Oswego policies as applicable
  • Must add some sort of measurable value to the project
  • May not contain any sort of intentionally malfunction causing or malicious code
  • May not be re-used for commercial use

๐ŸŽ—๏ธ Credits ๐ŸŽ—๏ธ

ยฉ๏ธ 2022 SUNY Oswego Facility Services

โœ๏ธ Project Originator Nathaniel Wolf

Last Updated: 5/27/2022

About

A MapboxGL-JS driven front-end application meant to provide a visual means of interacting with SUNY Oswego's inventory system. "Inventory" in this case can be anything from a smoke detector to a building itself. Currently, the assets are presented in parent-child relationship with the building's serving as a prent to the smaller assets. Currently, powered by a Spring Boot web server API to serving web content as well as data from a SQL based database.

https://oswego-map.herokuapp.com/


Languages

Language:JavaScript 46.6%Language:Java 34.8%Language:HTML 10.6%Language:CSS 7.7%Language:Procfile 0.3%