Web Client for SlideRule Earth
This repository contains the web client for SlideRule Earth, built on top of the secure static site architecture derived from Amazon CloudFront Secure Static Site v0.11.
The UI/UX was developed at the Savannah College of Art and Design by the following:
- Gabriel Mateleo
- Vincent Lee
The web client provides a user-friendly interface for interacting with SlideRule Earth, a server designed to process geospatial data and offer customizable analytical tools. This client allows users to visualize data, manage layers, and perform various geospatial operations in an interactive and secure environment.
- Secure Static Hosting: The architecture is based on AWS CloudFront for secure content delivery.
- Interactive Geospatial Data: Allows interaction with different datasets and tools provided by the SlideRule Earth server.
- Customizable Visualization: Users can visualize and process geospatial data using various maps and tools.
To run this web client locally, follow the instructions below.
- Node.js — exact version pinned in
.nvmrc. Use fnm (recommended) or nvm:fnm install && fnm use. - npm — version pinned by the
packageManagerfield inpackage.json. Enable Corepack once withcorepack enable && corepack enable npmand it will fetch the right version automatically. - See CONTRIBUTING.md for full setup and the
make install-depsvsnpm installrule.
-
Clone this repository:
git clone https://github.com/SlideRuleEarth/sliderule-web-client.git cd sliderule-web-client -
Install npm dependencies (installs both the root and
web-client/packages vianpm ci):make install-deps
-
Run the development server:
make run
-
Build for production:
make build
-
See all available commands:
make help
This project uses a variety of open source libraries to enhance functionality. Below is a list of key packages used:
- Vue.js 3 - Frontend framework for building interactive web apps.
- Vite – Next-generation frontend build tool that provides fast development and optimized production builds.
- PrimeVue - UI component library for Vue.js.
- ECharts - Charting library for creating data visualizations.
- OpenLayers - High-performance library for displaying and interacting with map data.
- Deck.gl - WebGL-powered framework for visualizing large datasets.
- Pinia - State management library for Vue.js.
- DuckDB WASM - An WebAssembly embeddable SQL database for data processing.
- Apache Arrow - Data interchange format for in-memory analytics.
This project is designed to be deployed as a secure static site using Amazon CloudFront and AWS S3. Refer to the Amazon CloudFront Secure Static Site repository for detailed instructions on setting up a similar architecture.
We use HashiCorp Terraform to deploy this website.
This project is licensed under the following University of Washington Open Source License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a pull request or open an issue for any improvements or feature requests.
For questions or support, please open an issue or contact the project maintainers at sliderule@u.washington.edu.