Coder Social home page Coder Social logo

philipmw / phrase.shop Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 3.0 3.79 MB

A web app to generate secure yet memorable passphrases

Home Page: https://phrase.shop

License: MIT License

JavaScript 0.71% TypeScript 98.93% Shell 0.36%
passphrase-generator dice entropy hacktoberfest

phrase.shop's Issues

Find a way to incorporate capital letters into phrase

Capital letters are required for many passphrases, but phrase.shop's attitude toward that is, "just capitalize it yourself." But maybe customers want a capitalized phrase delivered?

Some options are to randomly capitalize the start of each word, to randomly capitalize the first word, or even randomly capitalize any letter.

Persisting/clearing policy for generated phrases

Right now, the app displays the last generated phrase indefinitely, but it does not persist it in any local storage.

This means we don't control if/when the phrase disappears from the customer. It depends on the browser. For mobile devices, it depends on memory pressure.

The customer may want us to clear the phrase more aggressively. They can already close the tab/window, but maybe they forgot and hand the device to someone else who can unintentionally see the phrase.

Or the customer may want us to be conservative and persist the phrase until they explicitly clear it. I've had it happen that I generate a phrase, set it as the password on an important system, then forget it-- and it was already gone by then.

I see three possible approaches:

  1. Clear phrase after X time (optimize for security).
  2. Keep current behavior. Let the browser manage it. (optimize for simplicity).
  3. Persist phrase in local storage until explicit customer action. (optimize for data integrity).

I don't have a clear answer.

Fix interaction between sentence templates and dice entropy

In phrase.shop v1, you'd first build a phrase from parts (which requires no entropy), then generate it (which does). With dice entropy, the app would let you build the phrase but keep the Generate button disabled until you roll the dice enough times. This ensured we don't try to generate the phrase until we have enough entropy.

In v2, building and generating are combined into one step, but the entropy check now happens at the wrong time and for the wrong amount.

Remember phrase configuration

Once I configure my perfect <verb> <noun> <digit> <digit> <adjective> <noun>, I want the app to remember this, or I want to be able to bookmark this configuration.

Don't jerk UI during animation

Right now, while the phrase is animating, everything below it (disabled buttons, text) is jumping around. This is especially pronounced on mobile.

Redesign the UI so there is no jerking. One idea is to fade out everything below the animation, then bring it back once the animation is done.

Conjugate words

Now: <noun> <verb> => fish defeat

Wanted: <noun> <verb> => fish defeats or fish defeated

This will improve memorability.

Saved parts

I would like to be able to create my own custom preset

It would appear that an update has removed the ability to choose your own parts
I would like the ability to choose my own and then save that set of parts as a custom preset

So where there are currently 3 buttons, a fourth choice could be added for the user's custom preset that could be used when returning to the site

Incorporate favicon into UI

For brand recognition, let's put the favicon into the UI somehow. My latest thinking is to put it into the buttons.

Add support for light mode and dark mode

Right now the app is very dark, which is good for dark mode, but maybe not so good for light mode. Let's have two styles, one for light and one for dark modes.

During animation, mask all final plaintext

Right now, during phrase animation, sometimes real plaintext shines through. The real plaintext is visually distinct from animation temp plaintext, so it is distracting. Plus we don't want to reveal the plaintext til animation is finished.

This seems to happen in the beginning of animation and is especially visible with long phrases.

I suspect it is because we generate temp plaintext for each slot incrementally, and before we generate the temp plaintext for a slot, it defaults to displaying its real plaintext. If so, we can solve it by generating temp plaintext for all slots at animation start, before the incremental algorithm starts.

Improve SEO

  1. Add an H1 tag
  2. Add sitemap.xml (how)
  3. Lengthen TITLE tag
  4. Lengthen meta description to 70--320 characters
  5. Add robots.txt

Improve color-coding of phrase parts

Right now almost all parts of phrase are black, except for color type which is intense blue.

Let's give subtle coloring to nouns vs verbs to cue the reader to understand phrases easier that have ambiguous words.

Improve the dark UI

The UI right now looks very high contrast and alarming. I have some ideas for how to improve it.

Ability to type dice values

It can become tedious to manually enter each dice value with a click on a button.
Especially when those first 6 dice have icons that are very hard to see without squinting.

Please add a text entry box that allows multiple dice values to be entered at once using a space or comma etc, to separate the values.

This way a user can throw multiple dice and type the values instead of matching them to values on a screen that need to be clicked (it's more optimized to enter them on a keyboard where the user may already know the positions of the keys such as the Numpad)

Additionally, they could potentially copy and paste the values from a premade CSV string of their dice results - making it much faster to enter dice rolls as opposed to generated ones (making it less likely a user will choose the generated option for convenience reasons - which is less secure)

Set up a canary

Set up a canary to alert me if the site ever goes down or breaks.

Improve verb conjugation

Today, making a verb plural uses a home-brewed algorithm that's often wrong. Wrong pluralization is confusing, distracting, and makes phrases less readable and memorable.

I do not want to rely on a 3rd party library (or worse, a service) to pluralize, since phrase.shop has minimal dependencies today and that's a virtue.

Let's also consider other conjugations for verbs, to make phrases more expressive and increase entropy.

Add Fry words

Fry words are an alternative to Voice of America.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.