Bootcamp: 9 Weeks Down

It’s 3 more weeks to the end of my coding bootcamp. I’ve learned so much over the past 2 months. During the second week of my course, I blogged about how I created a racing game and a portfolio site.

7 weeks later, with the help of another classmate of mine, we already created a site with similar functions as Twitter hosted here and a shopping website hosted here. Please feel free to check them out though I must warn you that you may run into bugs as we are still working through some of them.

The Twitter-clone project was our first big one that took us 2 weeks to complete. We were given some user stories to fulfill.

Users should be able to:

  • create an account
  • log in and log out of their acccount
  • set their unique (one that does not exist in the database) username during account registration
  • edit their name, bio and avatar on their profile
  • post tweets limited to 140 words
  • the number of tweets tweeted by a user
  • view the tweets of the people they are following
  • visit other users’ profiles and view their tweets
  • reply to tweets
  • follow/unfollow other users
  • like/unlike tweets
  • view the ‘follower’ and ‘following’ lists of other users; sorted by date and time
  • view the list of tweets liked by the user; sorted by date and time

Administrators should be able to:

  • view all the tweets and replies of all users
  • delete tweets
  • view all the users’ tweet counts, list of ‘follower’ and ‘following’ and like counts

Here, we used has_many and belongs_to relationships to associate the various models so we can call the required data accordingly. I have to admit that when I thought I understood the concepts during class, applying it when I was actually coding for the project was a whole new world. Things started to get confusing. My partner for this project knew what he was doing and he was extremely patient in explaining some parts to me. He’s the star student in our batch so lucky me!

We only just completed the shopping one yesterday. It also took us 2 weeks. We were teamed up with different people this time and my partner for this one let me choose the product we wanted to ‘sell’ as she wanted to keep me motivated (it was super kind of her!). So I chose jewelry; those dainty pretty ones to be exact. Of course, there were some users stories for us to accomplish too.

Users should be able to:

  • sign up for an account
  • sign in to view products
  • view details of the products
  • add products to their shopping cart
  • remove products from their shopping cart
  • change the quantity of any one product in the shopping cart
  • sign out and still have the items in the shopping cart upon signing in again
  • checkout and make payment
  • receive an email to notify them on successful/unsuccessful payment
  • get redirected to an order confirmation page that displays the order details

Administrators should be able to:

  • view the products
  • view the product details
  • update the website with a new product
  • edit the product details
  • delete a product
  • manage all the orders (change order statuses from pending to confirmed/shipped)

Some additional features:

  • Users to be able to sign in/sign up for an account using Facebook/Google authentication
  • Users to be able to add products to shopping cart without signing in
  • Users to be able to remove products without signing in

We split the work up whereby I was in charge of the users part while my partner was responsible for the administrator part. We first used draw.io to create a flowchart to help us plan out all the models required.

Screen Shot 2018-03-17 at 7.35.32 PM

It may look like a simple chart but it is extremely useful. With that, we had something to refer to when we got lost in what a model is supposed to have or do. It too helped us when we’re created our routes.

We were taught how to integrate payment gateway into our website (we used Braintree) and generate an auto-email once a transaction is made using ActionMailer. We used gem dotenv to load the environment variables from .env into ENV for security reasons. This is such a crucial thing to do as leaking our secret access ID when pushing to Github wouldn’t be something that we want. These are just a few things out of a very long list that I learnt so far.

I’ve came such a long way since Day 1 and I’m so happy I did this. I’m so thankful Thomas suggested for me to do this when he saw me struggling. We will be learning a bit of React next week before we focus on our final project.

Our final project is a non-profit application which I will update again once we’re finished! I’m now starting to look at available junior positions and well, I have mixed feelings about it. Part of me feels that I’m not ready and part of me desperately want to get a development job considering I’ve spent 9 unemployed months figuring my life out and coding. I have to start somewhere, right?

I aim to get a job by June. Any advise that you think will help me is more than welcome! I’m also happy to take any questions or feedback on the two projects.

Happy weekend!

One thought on “Bootcamp: 9 Weeks Down

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s