Let's talk software

So this used to contain a lot more. A list with this website, wordpress websites I've built, publications I helped with, and half finished apps. I've taken them out because I decided I only wanted to show off what I'm genuinely passionate about- Villuna

Villuna

Villuna is a web app built with Angular, NodeJS, Express, and PostgreSQL. It's an app built for the real estate industry.
I've spent a huge amount of time building it and here are some of the things I've implemented.

Authentication

Along with all the easy front end stuff (design and creation of login, signup, profile pages) I spent a large time understanding proper authentication techniques. My web app authentication includes password hashing with bcrypt, creating access and refresh JWTs that are signed and encrypted, and secure storing of the tokens in a http only, secure cookie.

REST APIs

I've implemented several APIs to do things like query real estate data, send emails, and purchase domains for the users.

AWS

I taught myself how to properly handle image/data storage through AWS. Villuna needs to store the users images and designs. For this, I create presigned urls that allow the user to upload straight from the angular frontend to my AWS bucket. Each image is stored by a unique id, and stored in the database along with a foreign key of the current user id so that I can query all necessary images. I've also implemented Cloudfront to distribute assets.

Facebook SDK Implementation

I taught myself how to implement the facebook marketing sdk so that users can link their facebook account and generate ads straight from our platform.

Testing

Through this project I've learned about the importance of testing, so I've written in depth testing for both the Angular side, as well as my NodeJs backend using Mocha and Chai.

Front End

Through this project I've learned so much about professional front end design. Using HTML, CSS, TS, and bootstrap I've created (in my opinion) a very professional looking home page, dashboard, profile page, and all other needed pages throughout the website.