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.