BOMBY WEBSITE PROJECT

By Sebastian Main

A modern web development project showcasing frontend and backend skills with a focus on user experience and performance optimization. Includes a full E-Commerce platform with user authentication, product listings, and checkout functionality.

Project Overview

A detailed look at the purpose and approach of this project

The Project

I decided to create BOMBY due to the increasingly frustrating experience of being a freelancer on other popular websites like Fiverr or UpWork to name a few. I wanted to make a platform that was more user-friendly, and more focused on the user experiences of both the client and the seller.

I figured it would be a good idea to blend that platform with my portfolio. That way potential clients could see my work and gain that trust all in one place.

Date
February 23, 2025
Category
Web Development
Role
Full Stack Developer

My Approach

I began this project by first building the foundation using Django. At first it was just the home page and soon expanded to more as my outlined my ideas and drummed up exactly how I wanted it to look. My focus on projects like this is centered around the idea of "How can I make it look amazing and function perfectly".

I've learned what works and what doesn't with clients so I had to create a great first impression with this project.

Tech Stack
Django, HTML, CSS, Bash, Python, SQL
Timeline
3 Months
Purpose
Personal Portfolio and E-Commerce Platform

Technical Details

A deeper look at the development process and implementation

Development Process

I began by creating my 'MAIN' django app which hosts the home page, contact page, and about me page. I wanted this app to be the foundation of the project, this is what users would most likely see when they first connect, so I had to make a strong first impression.

Secondly, I moved onto my 'ACCOUNTS' app. This was the first building block of the E-Commerce side of my website. I needed it to include secure account functionality along with a user-friendly interface. I made many secure additions by employing an admin user-management panel ultilizing CRUD operations. I also included a custom profanity filter to censor any inappropiate language and also including AWS Image Recognition Software to stop any harmful images from being uploaded and displayed on the promotional wall page. A part of my site entirely dedicated to users and offering them the ability to showcase their own social medias and projects.

Next, I created my 'PORTFOLIO' app, this is where all my work would be hosted and designed in a way to appeal to potential employers and clients alike. It showcases step-by-step my hardwork and offers a chance for everyone to view my work.

Lastly, I started on my 'STORE' app, I saved this for last as I needed the 'ACCOUNTS' app due to user's needed an account to purchase and track their orders. This app was the most complex as it needed to be able to handle multiple users at once, and a large influx of orders which all display each unique user's order and information. Not only that, but offer a secure checkout process that was user-friendly and instilled trust within clients. Furthermore, on the admin side, I can track orders through an analytics panel that gives me every order detail, click-rates, finincial information, and more. All in all, I broke my website down into four corners and built each one up to be a strong foundation accounting for all possiblities.

Finally, after getting everything put together, I launched my website using Cloud Run through the Google Cloud Console. Deploying my container was a struggle. I had no idea what I was doing at first, but through grit and one long weekend I was able to get the containers deployed. I also installed a PostgreSQL database to store my data persistently along with Google Buckets to store my user-uploads like profile pictures and my stream assets for the stream store. Additionally, I've added CRON Schedular jobs to handle my emailing system for orders and messages all done on the website. That way clients get their invoices and users get reminded if they have unread messages!

All together, Bomby runs great and effectively handles all the jobs it needs to do. While also allowing me to easily come in and customize what needs updating or refining!

Technical Challenges

The biggest hurdle to get over at first was organizing the different django apps and stringing them together to make sure they all worked together. The 'STORE' app is built of the foundation off the 'ACCOUNTS' app, and all the apps (including 'PORTFOLIO') are all built off of the 'MAIN' app. Getting this organizational structure put together was a challenge with trying to figure out exactly how to string them all together.

This project did not progress without any setbacks however. Through optimizing my website, I discovered a critical error with my css files that led to users downloading EVERY file on every single page of the website. Identifying the issue and finding a solution led me to discover that all my css files were being piped through my base.html (the navbar, footer, etc.). Fixing this led to styling errors over the entire website. I had to go back and reformat all css and html files to look great and this time make them look even better than they did prior to the error. Fixing this critical error massively reduced load times across the entire website and led to a more professional look.

Another problem I faced was the incredible challenge of trying to deploy my website via Cloud Run. From never having used a service like Cloud Run it was overwhelming at first. I had issues trying to get my stylesheets to load properly. Then I had issues getting my data to load (which led to me setting up the PostgreSQL database). After that I then had to get my profile picture upload process working right and submitting files to a Google Bucket. Finally I had to get my stream assets to be included in the bucket properly so that clients could download them seamlessly. Overall, I created and configured a secure and functional Cloud Run website that functions smoothly.

// Example code snippet
class Product(models.Model):
    name = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=8, decimal_places=2, null=True, blank=True)
    description = models.TextField(blank=True)
    is_active = models.BooleanField(default=True)
    
    def __str__(self):
        return self.name

Key Features

  • Complete E-Commerce Platform for multiple services
  • Secure and Protected User Account Functionality
  • Dynamic and Purposeful Admin Management
  • Custom Graphic Design and Personality

Lessons Learned

Through working on this project I learned the importance of organization and structure. Stringing together multiple parts of the website seamlessly was a challenge but I learned how to do it purposefully and effectively.

At the beginning of 2025, I had no idea how to build a website, let alone a full E-Commerce platform. However, through learning the Django framework I've become confident in my abilities to deliver a strong online presence.

INTERESTED IN MY WORK?

I'm available for freelance projects and would love to discuss how I can help bring your ideas to life.

GET IN TOUCH