Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features / TODO #5

Open
26 of 69 tasks
cherylli opened this issue Sep 13, 2022 · 2 comments
Open
26 of 69 tasks

Features / TODO #5

cherylli opened this issue Sep 13, 2022 · 2 comments
Labels
discussion discussion

Comments

@cherylli
Copy link
Contributor

cherylli commented Sep 13, 2022

  • 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 - delete Create 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)

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

Components

Feature Cards:
image
Main area
image
Link Component
image
Groups
image

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
@cherylli cherylli added the discussion discussion label Sep 13, 2022
@gschadegg
Copy link
Collaborator

gschadegg commented Sep 20, 2022

Additional Feature ideas:

  • track number times shortened url is clicked
  • track referrer
  • 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

@cherylli cherylli pinned this issue Oct 3, 2022
@cherylli cherylli changed the title Discussion: Features Features Oct 3, 2022
@cherylli
Copy link
Contributor Author

cherylli commented Oct 3, 2022

image
image
image

@cherylli cherylli changed the title Features Features / TODO Oct 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion discussion
Projects
None yet
Development

No branches or pull requests

2 participants