-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the treemap wiki!
Table of Contents:
This is an API-first application, with backend written in Rust, and frontend written in TypeScript (Vue). For database, we use SQLite, for processing requests we use Amazon SQS (maybe a local queue implementation, also based on SQLite?).
Currently the only supported database is SQLite. It was chosen as the default option because it is serverless, can handle enormous numbers of simple queries, and quite a few updates. This usage profile fits the application needs perfectly. SQLite also requires almost zero hosting costs.
DynamoDB is another possible options, because it is serverless and requires no infrastructure set up, has pay per request billing, a significant free tier (25GB and 200M requests per month). It is tricky to run geospatial queries in DynamoDB efficiently, but one solution is to assign trees to blocks 1x1 km and query the data by those blocks.
Other serverless databases include MongoDB Atlas, App Engine, maybe something else.
User experience:
- The app must work on mobile phones.
- The app lists trees on the visible rectangle.
- Use Geolocation API to center the screen on start.
- Use clustering to group multiple trees.
- Clicking on a tree should bring a dialog with information on that tree.
- That information includes GPS coordinates, genus, photos.
- There is a Share button to share this exact tree.
- There is a Subscribe button to follow changes made to that tree.
- There is an Add button that opens a dialog to add a new tree.
Database:
- Store individual trees with the following attributes: id, lat, lon, genus, year_planted, height.
- Store multiple photos for each tree. Each photo has a full resolution URL and a thumbnail URL.