From 1834d549857ab2814b9711f97851bdd24301fa76 Mon Sep 17 00:00:00 2001 From: Ashley Yakeley Date: Mon, 23 Feb 2026 14:21:17 -0800 Subject: [PATCH] SPEC.md --- SPEC.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 SPEC.md diff --git a/SPEC.md b/SPEC.md new file mode 100644 index 0000000..9079955 --- /dev/null +++ b/SPEC.md @@ -0,0 +1,29 @@ +# 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.