Hack Reactor | SDC | Journal Entry 1
Categories: hack reactor SDC
Overview
Deciding on a Relational DBMS and NoSQL DBMS for our System Design Capstone
Challenge/Motivation
One of our first tasks is to decide on both a Relational Database Management System as well as a NoSQL Database Management System that we will be using to replace the API of a Front End Capstone project of our choosing. One of the DBMS will be considered our primary selection, and the other will be our secondary selection. Our options for RDBMS are MySQL, MariaDB, or PostgreSQL while our options for NoSQL are MongoDB, Couchbase, or Neo4j.
Actions Taken
I used a few online resources for my research and decided to create a Google sheet with my findings, which can be viewed here:
https://docs.google.com/spreadsheets/d/14fkJdkuKQ
RDBMS
Being that documentation and online support are important to me, I decided against PostgreSQL due to the questionable documentation and complex configuration. MariaDB is a fork of MySQL that is run by one of the original founders of MySQL as well as the community, and I would like to support the original creator as opposed to a huge company like Oracle. Due to these reasons, as well as the fact that MariaDB is one of the fastest-growing DBs in tech right now (many top companies are making the switch from MySQL to MariaDB, such as Google, RedHat, Ubuntu) contributed to my final decision being MariaDB.
NoSQL DBMS
It seems that my desire to use a product with robust documentation and support is once again influencing my design for the NoSQL DBMS. The online community, forums, training, and other resources for MongoDB seem to be prevelant and well-regarded. Based on my research, it also seems that most developers with more experience than me typically prefer MongoDB to Couchbase, and who am I to question the software engineers who paved the way for me. Although I also considered Neo4j, my lack of experience with graph databases as well as the fact that I will be more likely to use MongoDB in my professional life lead me to my final decision for a NoSQL DBMS being MongoDB.
Recent developments
Categories: javascript react
It's been a while since I've made a blog post, as I've been incredibly busy the past few months, but I think I have some reasonable excuses:
- I'm now a married man! My wife Patt and I got married in June in Thailand (her home country), and I couldn't be happier. I got to spend 3 weeks visiting her family and friends and experiencing Thailand (mostly via Thailand's incredible food). Unfortunately, we both got covid while I was there, which put a bit of a damper on our celebration, but we made the most of it and had an amazing time.
- I was accepted into Hack Reactor's part-time Software Engineering boot camp and started my 9-month journey to increase my knowledge and experience as a full-stack software engineer, which I'm also super excited about. I graduate in April of 2023, so the next 8 months of my life or so will be mostly dedicated to classes and study. I'm already having a great time and learning a ton.
I'll post again soon with some updates related to my experience at Hack Reactor.
0 Comments
Another React Poker App Update
I made some good progress on the poker app the past couple of weeks, namely the ability to import hands via text string as well as a slider for adding/removing hands to the current displayed hand range:
I also added localStorage for saving a user's ranges locally. I haven't yet decided if I'm going to add a database and user registration, but I think I'll build out all the features I want first and then worry about the higher-level stuff.
0 Comments
React Poker App Update
I'm super excited that I was able to almost completely port my poker hand generator app to React from vanilla JavaScript over the past few days with some help from a more senior level dev friend. I have it about 90% complete, or at least as complete as it was in vanilla JavaScript and I'm learning a ton about React in the process.
My recent accomplishments:
- Got all of the buttons working as far switching the positions and situations the user wants to view. The toughest part was accounting for all the subSituations (for example: situation = "RFI vs 3B": you Raised First In and someone 3Bet, or re-raised you | position = "UTG": Under The Gun, or the person to the left of the Big Blind | subSituation = "vs UTG1": You are facing a re-raise from the person at UTG1, or 1 to the left of UTG)
- Created a second useState that contains only the current display of hands and actions (handState) - this allows the user to only save the actions to a specific scenario when they press the "Save" button. It also allows them to clear the handState.
Next steps:
- Duplicate the percentage calculations that update below the hand grid
- Allow the user to import or type in a string of hand ranges so the user doesn't have to click them all
- Save the data to localStorage and also to the local device, which would also allow the user to upload a file with saved stats so they don't lose them.
Looking forward to getting a live working version up.
0 Comments
Re-building the poker hand range generator in React
This past weekend one of my senior dev friends helped me get started in changing the poker range took I'm building (initially in vanilla JavaScript) over to React. As React is on my list of software-related tools that I want to get better at, I think this is a good opportunity to learn more about it while building the tool using a library that will allow more flexibility and functionality when I want to add things to the project in the future.
0 Comments
0 Comments