Inspired by GitHub and GitLab, the new URL structure is:
/Project-Slug - the project page
/Project-Slug/data - for the data page
/Project-Slug/data/1836 - to generate the download
/Project-Slug/timeline
/Project-Slug/compare/sha1..sha2
The old URLs remain supported, since people have access to them on various archives/Slack instances, but the redirect to the new ones.
Code Changes
This introduces a slug column in the project table, which is a converted version of the name, replacing all non-trivial characters ([^0-9a-zA-Z-]) with a dash -. One may want to relax that in the future...
Slugs are always compared case-insensitively.
If a project isn't found, we show now a proper error.
Much of the client-side rendering is now moved to the server to reduce the number of round-trips.
The PR resolves #107.
Inspired by GitHub and GitLab, the new URL structure is:
/Project-Slug
- the project page/Project-Slug/data
- for the data page/Project-Slug/data/1836
- to generate the download/Project-Slug/timeline
/Project-Slug/compare/sha1..sha2
The old URLs remain supported, since people have access to them on various archives/Slack instances, but the redirect to the new ones.
Code Changes
This introduces a
slug
column in the project table, which is a converted version of the name, replacing all non-trivial characters ([^0-9a-zA-Z-]) with a dash-
. One may want to relax that in the future...Slugs are always compared case-insensitively.
If a project isn't found, we show now a proper error.
Much of the client-side rendering is now moved to the server to reduce the number of round-trips.