Build an URL shortener based on the following user stories:
- Anonymous URL shortening As an anonymous user, I want to get a shorter URL for an URL of my choice so that I can share it with other people.
- Authenticated URL list As a logged in user, I want to see all the URLs I have previously shortened so that I can share them again.
- Authenticated URL removal As a logged in user, I want to delete an existing shortened URL so that people cannot access it anymore.
Relevant resources:
- Polr: open source link shortener.
- Polr demo instance
Relevant resources:
- Create basic URL form
- Tie "Submit" button to a
fetch()
call. - Implement basic form of the endpoint in backend.
- Add CORS.
- Creation of link hashes: hashids.
- Storage of links: Bocadillo + orm.
- Display link hash in frontend.
- Redirect to original URL when accessing hash.
- Add Bulma.
- Refactor components: Hero, Form, Result. Use Bulma styles.
- Add copy-to-clipboard with clipboard.js.
- Change background color on success (Provide/inject)
TODO
TODO
- Allow users to provide a custom URL hash (e.g.
my-url
) and check for its availability.