-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Labels
discussiondiscussiondiscussion
Description
- unclaimed task
- claimed task
done
Figma: https://www.figma.com/file/SP0iLbONWkjZ0cTlpBwSPR/Shorti-Copy?node-id=0%3A1
Frontend: https://shorti.onrender.com/
Backend: https://shorti-server.onrender.com/
Must Have
-
(database) setup mongo (mongoose) - basic setup will be done before 1 Oct - url shortening
-
(backend) schema (mongo) -
(backend) setup express -
(backend) endpoint - create (long url to code) -
(backend) endpoint - read (code to long url) -
(database) add "timesClicked, urlTitle" to the Link Schema to match frontend (urlTitle should be optional, in frontend, user will be able to add a title if it was not set, timesClicked will be defaulted to 0) - (database/backend) link user and link objects - user would be optional as people are allowed to create links without logging in
-
(backend) endpoint - deleteCreate Endpoint - Delete #13 adds delete link endpoint #51 - (frontend) component to enter url - still needs styling
- (f) api call to create code from long url (Create Shortened URL - Frontend #83)
- (f) routing - if user goes to localhost:5173/short, the user should be redirected to the original url
(backend /api/links/{short} will redirect) - (f) component to show previous shortened urls
-
-
A design - Style "Not Found" page
- Github documentation (on going)
-
readme (Documentation: Update Readme #21)
-
Should Have
- frontend tests (cypress) - new tests should be added for each new feature added
- backend tests (jest) - new tests should be added for each new endpoint
-
links -
auth
-
-
API documentation (Swagger or alternative) - (frontend) authentication - state (contextAPI)
- (frontend) states for list of links (add, delete, edit etc) contextAPI
- landing page (desktop/tablet/mobile)
-
logo -
nav bar/header bar - needs styling -
signup/login buttons (normal, hover) - Feature Cards
- Main area
- hero component
- footer - needs styling
- social media icons (Social media icons #11)
-
- user accounts - dashboard (so they can access/manage their old links)
- (b)
user schema - (b)
probably use passport with jwt/google account/other account login strategies - (b)
login endpoint - (b)
register endpoint - (b) logout endpoint
- (f)
login api call - (f)
register api call - (f) logout api call
- (f)
handle login state with maybe local storage - (f) Link Component (Previous Shortened URLs Component #12 )
- (f) sort link list to show latest links first
- (f) Groups Component (Create Link / Group Drop Menu Component #47)
- (f) Search
- (f) filter
- (b) implement groups
- (b) implement search / filter
- (b) update link schema to include number of times clicked
- (b)
Components
Feature Cards:

Main area

Link Component

Groups

Good to Have / Additional Features
-
custom short link- check reserved strings not to be used for custom short links (server/utils/reservedString.js)
- link should expire after a certain period of time (links have expiry dates, but they don't actually expire)
- track number times shortened url is clicked
- track referrer
- Error Boundary
-
404 page - optional title on shortened link / link when displayed in account
- groupings of shortened links to create campaigns or themes
- share links / groups with other users by email (if doing any stats)
- permissions, view, edit, admin
- QR codes
TODO/ Code Improvements
- login, logout and signup buttons should be consistent (Styles, markup)
- TODO task in server/links.controller
- post response data should probably be consistent with get response (original_url -> url, short_url -> short)
(links.controller, swagger, and tests need to be changed) - improve error handling with a middleware or express-async-errors
Metadata
Metadata
Assignees
Labels
discussiondiscussiondiscussion