Today I added the model and routes to users and jobs. I tested the endpoints and fixed my typo bugs. The plan for tomorrow is to secure and clean up a few things.
So today I decided to delete everything and start over. I forgot the key thing when beginning any project, Keep It Simple. Funny thing is that I have gotten further along than I planned and things are nice and clean.
I have gotten to the point now that I can proceed much quicker.
I spent some time setting up mongoose and MongoDB Atlas. I was able to set the user schema and the related routes.
The plan for the rest of the week is to do all the simple setup.
I set up the node server on my local machine and pushed it to the GitHub repo. Plans for tomorrow is to get the database and the UserSchema.
Sunday is not big coding days for me, especially this Sunday. I spent time with the family, did some laundry and watch the Irishman (In one sitting) on Netflix. I did find some time to code up and finish another small project but for the JobTrax project, I did research related to the type of database to use.
SQL || NoSQL
I was planning on going towards a SQL database solution, PostgreSQL, when I was first thinking about this project. It would be easy to go the SQL route if a had a completed database design but I have been changing the structure. I found a good video to go over the pro and cons in a non-bias way. At this point, I am leaning towards NoSQL, MongoDB, because of the flexibility.
Many-to-Many | One-to-One | One-to-Many _Relational Tables – Structure
Collections -> Document _No Schema very flexible _No/Few Relations
Today I went over the features list and created a software design document (SDD). I couldn’t for the life of me find my old spreadsheet that would be the base of this project.
🤦🏾♂️ As I was writing this it just popped in my head that it wasn’t an actual spreadsheet perse but a google form that I created. So, I found it!
So, I tried to set the feature from memory and some features I would like to see now. The SSD helped me clear up or at least made me think about things a little deeper. I am thinking about making things a little simpler and might turn towards Firebase or other microservices platforms.
I didn’t have much time today but I am glad I spent the time to at least get going on the feature list and the SDD.
Tomorrow Plan ☁️
Since I should have more time tomorrow I should be able to go over the SDD and make changes and get started on the backlog.
I spent today researching a bit but I made a decision on what I am doing with the frontend of the application. Well, I am leaning towards one direction…
Research Time 📖
I also spent time today to watch a few videos on microservices just to get a better understanding of it. I found that the video from FreeCodeCamp best explained things. I did run into a video of a talk by David Schmitz titled 10 tips for failing badly at Microservices that I really enjoyed and learn a good deal from.
I will be using ReactJS with Material UI, at least this is the choice I will be going with for now. I have some time to let this settle in because I would like to take some time learning VueJS. The way to learn a new framework is by doing. 💯
I have to start thinking and designing the architecture of the backend API so I can avoid costly mistakes when I get to the frontend.
Tomorrow Plan 🌞
Take a look at the spreadsheet I created and begin outlining the application feature needs. I will create a backlog of everything and have it placed in ZebHub or Trello for project management.
I have decided to build a job tracking web app. This came about because at one point I was using a spreadsheet to track the information about jobs that I applied to or about to apply to. The spreadsheet was nice but it was annoying at times.
I went through some of the projects that were on the self dug a little deeper into why I wanted to work on each one. The job tracker was the one most relevant to me at this time of my life so I figured it would be best for me to work on it.
I decided on using NodeJS for the API Backend and I haven’t decided on the database just yet. Also, I picked up the domain jobtrax.dev, created a GitHub Organization with a got repo and created a quick logo.
At this point this project is called JobTrax and I will have a repo for the API backend, called Suit, and another repo for the frontend, name not determined.
I have one thing in mind this year and that is to build out several different projects. I will do some solo and partner up with others to get it them done*!
Let me roll back a bit
So my intention this year is to roll several minimum viable products (MVP). I plan to keep them simple enough to be able to move on to the next project in a reasonable time. They will will be able to be used in the real world so security will be a priority.
I’m thinking about keeping all or at least majority of them open source under the MIT license but I will have to do my research on that.￼
What am I talking about doing
The goal is to hit 12 projects and that will included some that I have put on the self or working on them much slower pace. Also, I will keep a daily log on my progress here, under #BuildYear and on social media.
I have already started the #30DayProject in the Zero2Mastery course so it should help me stick to it year round.
Every once in awhile I run into an issue with one of my client’s sites or even one of my own web projects that causes a mass crisis. White Screen of Death, which I prefer to call “White powder donuts” because it sounds much nicer, is the one that always freaks people out. I usually have to spend about 30 minutes just calming the person down so they can tell me what they did last and everything will be alright. Halfway through me calming them down I usually have their website back up and running like nothing happen.
He who smiles in a crisis has found someone to blame.
1, 2, 3, Breathe
I briefly talked about how to Troubleshoot common errors made in WordPress in the Beginners workshop at WordCamp Miami in Fort Lauderdale. One of the things I pointed out was to stay calm and relaxed during a problem with your website. I know, I know freaking out when you see weird and strange things happening to your website is normal behavior but you have to calm down and just breath.
Now that you have calmed down, there are a few items that you have to go over.
Try to remember your last few steps before your website broke. I usually keep a log with a paper and pen to jot down what I have done. This helps me keep track of changes if things tend to break. If you can go back to what you did wrong, you could probably fix it without having to restore your files and database with a backup. For example, if you installed a plugin that took down your site, you can get into your plugins folder via FTP and change the name of the plugin folder which will basically turn off the plugin.Do you have a backup and how recent is it? If you have a backup of your site then you can restore your site back to the date when the backup took place. Now, if you didn’t backup your site before updating your site, plugins or adding some code snippet that you found somewhere on the net you might be going further back then you like to. I, like most people, prefer to automate my backup for every month for my websites. I have a few websites that are backup every week or even daily based on the amount of content they generate in a certain time period. I will always recommend that you backup be done before making any updates and code changes. A more recent backup of your website can save you a headache trying to put it back together.
The facts are that things break but if you don’t freak out you can easily get it back up. Glitches can happen for many reasons and some of them will require you to do a full install of WordPress. Don’t dwell too much on why the glitch happens just focus on getting your website up and working on preventing it from happening again.