Skip to content

Latest commit

 

History

History
30 lines (29 loc) · 2.41 KB

TODO.md

File metadata and controls

30 lines (29 loc) · 2.41 KB

The following are things I would like to incorporate into future versions of Shortnr, in no particular order:

  • Provide the ability to customize character encoding for the static page as well as for HTTP responses in general.
  • Implement a revere-regex-like system for defining the length and allowed characters of an URL code.
  • Split up the code in app.js into multiple files in order to make the code more modular and easier to read/edit.
  • Improve support for the static front end.
    • Maybe include a static file server for serving local files.
  • Restructure code for REST service so that it is more modular rather than a bunch of if statements.
    • This should make the creation of new "response" paths neater and easier for a developer trying to customize the code for their needs.
  • More customizable and advanced limits system.
    • More timeframes or customizable timeframes.
  • Client tracking for API usage beyond IP address (also goes along with improving limits system).
    • Might include a client-id system where clients have to register first.
  • Ability for clients to request a specific URL code to be associated with their URL.
    • So that if I wanted to I could register short.nr/felix to felixmc.com
  • URL code blacklist, maybe to avoid generating URL codes that might spell offensive words.
    • This would be a must feature if the customizable URL codes feature gets implemented.
  • Ability for a shortnr server to manage multiple domains, possibly with multiple databases.
    • For example, hel.lo/world and f.oo/world would link to different URLs despite having the same URL code "world".
  • Support for database systems other than MySQL.
  • Add IPv6 support for client tracking and analytics.
  • Add more comprehensive client filtering based on IP address, similar to Apache's mod_access
  • Ability to customize paths in REST service.
    • For example, change the POST /api path to /add or something.
  • Ability to customize scope of the client filtering functionality on a path by path basis.
  • Implement blacklist/whitelist functionality for what domains can be shortened.
    • Useful for preventive spam by blocking certain domains or even other URL shortening services to prevent double-shortening as a means to concel the final destination of the URL.
  • Provide more options for parsing the URL before being inserted into the database.
    • Can include things like removing certain query strings or #'s
  • Ability to customize what gets logged in the database.