Home Page
Other Posts

Building Crypto-Piazza

In March 2021, I joined the All Aboard Bootcamp hosted by John Crepezzi, Staff Software Engineer at GitHub because I was interested in learning Ruby and Rails, CSS, and JavaScript. As part of the final project, we had to build a web application on Rails and deploy it to Heroku. John advised us to build something that would be close to our hearts and we would work on passionately.

I have an avid interest in cryptography, and I researched it during my Master's at BU. I spent 2 years understanding and assimilating knowledge about cryptography and recently a lot of my friends and acquaintances have asked me to help them understand cryptocurrencies. Hence, I wanted to build a platform that helps them with this goal. Initially, some of the features I wanted this website to have were:

John suggested that I open the application to user contributions as well, and I was inspired by this to create the functionality where users could share their own blogs and comment on others blogs, while also asking and answering crypto-related questions.

Week 1

I started building out the application on CodeSpaces and making sure my models were correctly assigned. I always like to make small changes and deploy them to check for any errors when I’m building. It’s always the best way to test each new functionality as you go.

We had to deploy our projects on Heroku. Heroku doesn’t use SQLite and I had to learn to use PostgreSQL for building the application. I was curious about the benefits of PostgreSQL so I decided to do some research and some of my findings about PostgreSQL were:

However, I did run into many errors while migrating my application to Heroku with Postgres. Some of them were:

Week 2

After solving all the database and migrations problems with my application, I was ready to start adding functionality and a usable interface to my application. I added users, sessions, authentications and authorizations. I made the controllers and pages for exchanges, questions, and blogs.

However, to make sure that the application had a consistent look, and was easy to navigate, I wanted to add a header and a navigation bar. I used CSS and added parts to my application.html.erb to ensure that all pages of my application would have a title header, that also had “Login/Sign Up” and “Sign Out” buttons. I also added a navigation bar below it and styled it with a contrasting color.

The difference it made to the look of my application was impressive and I quickly migrated my changes to Heroku so I could ask for feedback from my friends on how to style it further. However, once I migrated the changes, The navigation bar refused to show up on my Heroku page. Italian Trulli
I was confused and asked a question on StackOverflow and also asked John for help. He was confused by it too initially and after going down a few rabbit holes, I ended up on this excellent documentation page by Heroku on Rails Asset pipelines.

The problem was that I had run rake assets:precompile locally and that created a manifest file in my public assets which should not be pushed to Heroku. I removed the file from the git and pushed it to Heroku again and it solved the problem.

In addition to solving this bug, in my 2nd week of building Crypto-Piazza, I was able to:

Week 3

In my 3rd week of building Crypto-Piazza, I worked on consolidating functionality and adding features that would enhance things I had already built. I achieved this by:

Presentations

It was genuinely moving to see the progress we had all made in the last 7 weeks. Many of the projects made were real, useful applications. We all have John to thank for his guidance and mentorship. I remember emailing him about a bug fix at 1 AM on a Monday night and he replied within minutes, sending me more relevant documentation to deepen my knowledge about Rails and the fundamentals of how I had actually fixed the bug. I hope to continue working on this project and keep it live at Crypto-Piazza