Day 27: Halfway Done the Inventory App

I am back on my backend work. I was really trying to one-shot the rest of the inventory app project. Unfortunately I underestimated how many tasks there are to complete. I will give myself credit though since I tend to struggle sometimes at the start of a project and at the end. So this time around I was able to address the “start” part of my struggles.

The problem with “starting” is derived from my own feelings of being lost. An empty project folder can be a bit intimidating. I can be quite the perfectionist so an empty canvas means every stroke feels significant when it really is not. In my last project where I struggled with “starting”, I found that writing out a good plans helps. The challenge with that is knowing what the plan needs.

Since my last project where I struggled, I started adding a section of notes called “implementation”. This category of notes deals specifically with projects and using tools and programming languages to construct real software. I started including how to organize and structure applications in there and since then I have found a lot more success with starting new projects. Once I have broken down the concept of a project into smaller understandable steps, “starting” does not seem so bad. Now all that is left is addressing my issues with “ending”. But that is a topic for tomorrow… hopefully.

TLDR;

Okay, so here are the highlights of what I did:

  • Practice -> Continued working on the Inventory Management Application project from The Odin Project. I have been pretty great with my Git commits so far. I have added the routes, the basic structure of the controllers, and I am working on the view templates now.

Inventory Management Application Notes

For this project you are going to create an Inventory management app for an imaginary store. It’s up to you what kind of business this is – you could be selling groceries, car parts, baby-toys, musical-instruments, ponies or anything!

I have decided to build an inventory management application for a grocery store. I am pressed for time and would like to focus on the core coding concepts more so than my creative vision. There are other ideas I would rather do but I am very comfortable with grocery stores.

Requirements:

The app must have:

  • Categories – All CRUD operations
  • Items – All CRUD operations
  • When a user goes to the home-page they can choose a category to view, and then get a list of every item in that category (Similar to the Local Library tutorial project)

Plans

Models needs in database for Grocery Store:

Category:
---------
Fields
  - name
  - description
  - Virtuals
    - url

Item:
-----
Fields:
  - name
  - price
  - category
  - description
  - stock-quantity
  - Virtuals
    - url


Routes

Category:
---------

Index
  - Homepage ('/')


Routes
  - create (construct)
    - GET
    - POST
  - read
    - GET all categories
    - Get one category
  - update
    - GET
    - POST
  - delete
    - GET
    - POST


Item:
-----

Routes
  - create (construct) 
    - GET
    - POST
  - read
    - GET all items
    - Get one item
  - update
    - GET
    - POST
  - delete
    - GET
    - POST

Middleware




Tasks

  1. [x] Finish writing basic plans for the app.
  2. [x] Construct file/folder structure skeleton for the app.
  3. [x] Construct Routes and add to app initializer
  4. [x] Construct Controllers skeleton
  5. [x] Construct Models
    • [x] Populate the database with dummy data
  6. [ ] Construct Views
  7. [ ] Construct each handler in Controllers
    • [ ] Add Model info and view info to each item controller callback function
    • [ ] Add Model info and view info to each category controller callback function

Bugs/Issues


Meta Data

Started On: 2022-07-13

References:


Goal For Round 8 of the #100DaysofCode Challenge

This is my eighth round of the “#100daysofcode” challenge. I will be continuing my work from round five, six, and seven into round eight. I was working through the book “Cracking the Coding Interview” by Gayle Laakmann McDowell. My goal was to become more familiar with algorithms and data structures. This goal was derived from my goal to better understand operating systems and key programs that I use in the terminal regularly e.g. Git. This goal was in turn derived from my desire to better understand the fundamental tools used for coding outside of popular GUIs. This in turn was derived from my desire to be a better back-end developer.

I am currently putting a pause on the algorithm work to build some backend/full stack projects. I primarily want to improve my skills with the back-end from an implementation perspective. I have improved tremendously in terminal and CLI skills but I lost focus due to how abstract the algorithm concepts got. I wanted to work on things that were more tangible until I can get to a position where I could directly benefit from improving my algorithm skills and theoretical knowledge. So that’s the focus right now. Build my backend skills and prove my full stack capabilities by building some dope projects.

Again, I still have no idea if my path is correct but I am walking down this road anyways. Worst case scenario I learn a whole bunch of stuff that will help me out on my own personal projects. Best case scenario I actually become one of those unicorn developers that go on to start a billion dollar company… You never know LOL.