Refactored with Flutter

Google-flutter-logo.png

Took advantage of quarantine time to learn a new programming language called Flutter. One of the goals of the Flutter project is a single codebase being used to build Android + iOS + Web and desktop based vesion of a tool. It’s being supported by Google right now, so high quality tools and a active and smart community. I took an online class to make sure I got more than just the syntax but some good development practices as well.

So task #1 was to use RateWings as the learning tool it’s always been and rewrite it. I also moved the database off RDS to firestore which will save me about 90% of what it costs to run the app. It also means RateWings is a native app for android vs. just a wrapper around the website. It’s currently deployed as a static app hosted by aws S3 and behind CloudFront (for https) but it’s a pretty lightweight deploy so I might learn some more GCP products.

Lots of functionality lost in this version (like users, about page and some tooling around maintaining ratings) but I’ll be sharpening my flutter skillz while re-implementing these. Also will be much easier to get a native Apple app but I gotta get my hands on a mac as that’s the only way to do that.

Redeployed to ECS

Did some modernization on how I run RateWings in the cloud. Instead of renting an entire computer from Amazon Cloud, I put RateWings into a container and told Amazon Cloud to run it however it likes. This should save some money on the infrastructure bill to keep the site running.

As always, I use RateWings to learn new technologies. This time it was Docker and ECS. I’ve been using Docker for development reasons for a while, but now the same image I build for development is being used to run the site in production. ECS is Amazon’s Elastic Container Service which is designed to allow users to quickly use as many instances of their services as needed to handle existing load. For me, this means use almost no resources as the site doesn’t generate much load at all.

I’ve still got some DNS tricks to figure out to make things 100% automated, but I can now push a change to the site (build new image, push to ECS, update Dyn DNS) in under 2min.

My Ratings

Visible changes: Added Facebook logins and ability to track your own ratings, i.e. search for “Mine”. Also fixed the browser location detection functionality.

mine.png

Non visible changes: Moved DB to RDS. Using ansible to deploy site. https enabled. Allauth installed. blue-green deployment advanced – not quite perfect.

Hello World

Started this project maybe a year ago and am just getting to a blog now, so let’s catch up shall we?

Early 2013: Registered the RateWings.com domain and began playing with different technologies for the website including flask and then django

Early 2014: Settled on django as the technology to run the site and got it into what I’d call an “Alpha/Prototype” state

April 2014: We submitted ourselves to the Manchester Young professionals Start-Up challenge contest but didn’t even make the semi-finals

May 2014: The website is live: RateWings.com – and we’ve got 67 ratings from the efforts of friends and family

Today: Added a blog to the site 🙂

What’s next == good question… stay tuned