Git Product home page Git Product logo

rafitajaen / generatify Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 7.82 MB

Secure Password Generator and Strength Checker for all your online accounts. Mix letters, numbers and symbols to get a random password and check its strength against a brute force attack.

Home Page: https://generatify.web.app

JavaScript 1.33% HTML 74.75% TypeScript 22.96% SCSS 0.96%
angular clipboard heroicons password-generator popperjs rxjs zxcvbn

generatify's Introduction

Generatify - Strong and Secure Passwords Generator for Online Accounts


Generatify is an open source Angular 14 SPA (Single Page Application) written in Typescript and built with TailwindCSS.

The main purpose of the application is to generate strong and secure passwords by randomly combining letters, numbers and characters.

In this way, the application prevents patterns that can make the password an easy target for brute force attacks.


Getting Started

You can visit a LIVE Demo here: Generatify LIVE Website

Run Generatify locally

If you prefer to run this application locally you must first make sure you have the latest LTS version of nodejs installed.

By the time you have already installed a version of nodejs :

  1. Open your IDE

  2. Clone this repository

      git clone https://github.com/rafitajaen/generatify.git
    
  3. IMPORTANT: Do no skip this step because npm < v7 don't install peerDependencies by default. More info.

      npm install --legacy-peer-deps
    
  4. Build and serve your application. Run the following command on your console:

      ng serve
    
  5. Open your browser http://localhost:4200


Documentation

Architecture

The source code follows a feature-driven structure proposed by Shijin Nath to make medium-sized applications easily scalable and maintainable. You can read more about his vision here.

src
├───app
│   ├───core
│   │   ├───components
│   │   │   ├───footer
│   │   │   └───navbar
│   │   ├───models
│   │   └───services
│   ├───features
│   │   ├───generator
│   │   │   └───components
│   │   │       ├───password-input
│   │   │       ├───password-strength
│   │   │       └───strength-score-badge
│   │   ├───hero
│   │   │   └───components
│   │   └───illustration
│   │       └───components
│   │           ├───larry-good
│   │           ├───larry-secure
│   │           ├───larry-strong
│   │           ├───larry-vulnerable
│   │           └───larry-weak
│   └───shared
│       └───components
│           ├───logo-icon
│           └───logo-text
├───assets
└───environments

Password Service

This is the main service of the application. It depends on two npm packages:

  • generate-password-ts: This library was forked from the original Node.js version generate-password. This forked version was totally re-written in TypeScript from the original JS version and supports not only Node.js but also browsers without need of crypto-browserify. It generates random and unique passwords.

  • @zxcvbn-ts: It is a password strength estimator inspired by password crackers. It recognizes and analyzes over 40 thousand common passwords using pattern matching and conservative estimation and filters out common first names, last names, popular words from Wikipedia and common words in many cultures, and recognizes common patterns like dates, repetitions (e.g. 'aaa'), sequences (e.g. 'abcd'), keyboard smashes (e.g. 'qwertyuiop'), and l33t speak.

The password service encapsulates in a single object all the necessary information obtained from the packages mentioned above:

interface Password {
  value: string;
  crackTime: string;
  score: number;
}

This service is also responsible of the state management and is consumed by the components through an observable.


🚨 Forking this Repo (please read!)

Many people have contacted me asking me if they can use this code for their own website, and the answer to that question is usually yes, with attribution.

I value keeping this site open source, but as you all know, plagiarism is bad. I spent a non-trivial amount of effort building and designing this app for my portfolio, and I am proud of it!

All I ask of you is to not claim this effort as your own.

TL;DR

Yes, you can fork this repository. Please give me proper credit by linking back to my github account. Thanks!


Screenshots

generatify-screenshot


Credits and Resources Links

Angular File Structure and Best Practices by Shijin Nath

Larry Character Illustrations.

Google Font to SVG


🧐 Let's Get in Touch!

I look forward to gaining new knowledge, sharing my experiences, collaborating and creating amazing products to make the world a better place!

Linkedin Badge

🧠🏭🤝🌍

generatify's People

Contributors

rafitajaen avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.