Tradies where people buy and sell items
Welcome to my Marketplace or CtoC ecommerce application!
Tradies is where people go to buy and sell items! I originally built to help friends buy and sell items locally with simple user interface and to learn building a website from scratch. This was my first scalable, full-stack RoR application.
The app requires authentication to access. Authentication is executed with email verification (emails sent by SendGrid) and mailers.
Asynchronous/Background Processing
All the mailing are handled by queue implemented in Redis Server(Sidekiq sits on top of it) and de-queued consecutively.
There is definitely a bottleneck which will be discussed later.
Upon login, you can search using the search bar at the top:
def beautiful_search_url
# check this function in the link above
end
Messaging
def search_data
attributes.except(:state, :content).merge(
category_titles: categories.map(&:title)
)
end
# creates a checkout object using WePay API for this user
...
def create_checkout(redirect_uri)
price = self.price
app_fee = tradies_app_fee(price)
params = {
:account_id => self.user_wepay_account_id,
:short_description => "item sold by #{self.user_name}",
:type => :goods,
# :auto_release => false,
:currency => 'USD',
:amount => price,
:fee => {
:app_fee => app_fee,
:fee_payer => 'payee'
},
:hosted_checkout => {
:mode => 'iframe',
:redirect_uri => redirect_uri
}
}
...
...
1) Bottleneck:
Solution:
2) Bottleneck:
If I do this project again, I will definitely build better automated tests to find any bugs that I would encounter. I think I did not use my time effectively during development. Also, I will definitely have the features that I want to implement written down and create a plan before dive into coding. Since this was my first time building an application in such scale, I did not have a good plan but had a determination and perseverance to complete. Definitely, I sometimes felt like I want to give up but I pushed myself to finish this project.
I have learned a lot from this project which include but not limited to web architecture, scalability, and building something from the scratch. I forgot to mention this but don’t try to do everything by yourself:)
MIT License