This was built for academic purposes. If you want a secure address, read this.
Generate Private Key
5. Base58 encoded data is easier to read and manage. The "double-arrows" indicate this is reversible.
Generate Public Key
6. Multiply the private key by the elliptic curve generator point to get the public key. The public key is a point on the elliptic curve and has x and y coordinates.
7. Use parity of y coordinate and full x coordinate to represent the public key.
8. Hash public key twice. This obfuscates the public key and shortens it.
11. After another base58 encoding, we have our public address :)