30 lines
1.0 KiB
Markdown
30 lines
1.0 KiB
Markdown
|
|
# AnnotateMap
|
||
|
|
|
||
|
|
This is a website that allows users to log in and drop pins on a map.
|
||
|
|
Each pin can have some descriptive text.
|
||
|
|
Everyone can see everyone else's pins, together with the description and the userid of the person who created the pin.
|
||
|
|
|
||
|
|
Both front-end and back-end are written in TypeScript.
|
||
|
|
|
||
|
|
## Back end
|
||
|
|
|
||
|
|
Server data is stored in a Postgres database. This includes pins and account info.
|
||
|
|
|
||
|
|
## Front end
|
||
|
|
|
||
|
|
The user can pan and zoom the map, on which they can see everyone's pins.
|
||
|
|
The map view (pan/zoom) is stored locally on their browser.
|
||
|
|
|
||
|
|
Each pin looks like a pin icon (similar to Google Maps pins).
|
||
|
|
Pins belonging to the user appear in a different colour.
|
||
|
|
When a pin is clicked on, a pop-up shows the description and the username of the user who created it.
|
||
|
|
|
||
|
|
Users can create new pins (with descriptions) and delete their own pins.
|
||
|
|
|
||
|
|
Map tiles come from some suitable open map server.
|
||
|
|
|
||
|
|
## Accounts
|
||
|
|
|
||
|
|
Each user has a username and password.
|
||
|
|
For now, accounts can only be created by running a command-line tool on the server.
|