JavaScript Algorithms and Data Structures
This series of projects dealt with JavaScript. The "Algorithms and Data Structures" part feels like a bit of a misnomer. At least, I don't remember anything like a bubble sort or a linked list in this section.
Palindrome Checker
Regular expressions and string manipulation. It's curious how popular these things are. This is pretty much what separates every programmer (at least every introductory programmer) from the common round — even more than arithmetic. "I can't be a programmer. I'm not good at math." Well, that's secondary, friend. What you really need to know is how to reverse a string and format numbers and pretty-print those things to the console. Wanna be a programmer? Well, you have to be a typesetter, first.
Roman Numeral Converter
That is, turn numbers into letters. Just because. Certainly not because it's actually a good idea to use Roman numbers.
Telephone Number Validator
USA phone numbers. And the list of "valid" formats is seven-long. Whatever — I completed the project.
Cash Register
This is a "cash register". It "makes change". It's also, as can be noticed with the previous projects since ending the Web Design section, quite plain. The absurdity is still there, though.
RPG Creature Search App
A Pokedex. A minimalistic, outdated Pokedex. I intended to go all out with... Well, I intended to make this one quite stupid. Elements bouncing all over the window once the form was submitted. How many hundreds... thousands... of these clones were created by programmer hopefuls going through the FCC curriculum? Most do the bare minimum; some of those actually finish. A few go for flair; a few actually succeed. I was thinking, "How about intentionally bad?" But that required more work just to finish something that I didn't care about. This is very logical: I don't care + I'm not getting paid + I'm not being forced = bare minimum effort. My personal projects are the ones worth looking at. These just show that I can understand things, follow instructions, and get stuff done.
Front End Development Libraries
... So this section dealt with "front end development libraries" — Markdown, Bootstrap, Sass, jQuery, React, and Redux. And, when it got to the projects... I just used straight HTML, CSS, and JavaScript. I did not appreciate the extra complication. Why use an extra layer (or many extra layers) that offers no needed (or desired) functionality? I always pull the skins off my sausages anyway. I suppose I semantically failed this section, but I still managed to pass all of the tests (and net the certificate). Curiously, when I was building this portfolio, I noticed that these projects flashed a warning about the tests no longer working with certain libraries. I guess I ended up "future proofing" it by sticking with the basics.
Random Quote Machine
Click a button; get a probably nonsensical quote.
Markdown Previewer
This is a Markdown... Previewer. No, really, it is. It's actually kind of neat.
Drum Machine
Make some noise. But don't actually expect much fun out of this.
JavaScript Calculator
A terrible calculator. For some reason, the second number entered cannot be the first number. This was made in 2019 and I really don't feel like fixing stuff that I'll never use.
Javascript Timer
For time-conscious people, a timer. Really, though, use a better solution.
Relational Database
These used Bash, Git, and PostgreSQL. Absolutely no "front end", here, so no live links. Only two of them are really interactive.
Celestial Bodies Database
I had to build a database, as well as query it. This made for further education, sure, but it also made for a very abridged universe.
World Cup Database
The database was provided for me, this time. Which was well, since I have little interest in football. The SQL queries were trickier here than in the previous project.
Salon Appointment Scheduler
This one's actually interactive. Learned how to write Bash scripts. Pretty fun. Having spent most of my days with Windows, I can really appreciate (even prefer) the Linux command line.
Periodic Table Database
Similar to the football database.
Number Guessing Game
Another interactive one. A game, even. Not a difficult game, of course. Well, maybe it is for children that don't know how to pick the middle number every time (some people call this the binary search algorithm or the half-interval search).
Back End Development and APIs
These projects dealt with Node and one of its extensions — Express, as well as MongoDB and one of its extension — Mongoose. I was *supposed* to use Mongo, but, frankly, JSON worked just as well. What little I used Mongo, I prefer SQL. But neither were functionally necessary for these projects. Probably also failed these in spirit, even though the tests passed. Anyway, while I didn't have to bother with the front end, there *was* a front end; thus live pages. However, since I don't have a server running these things, I'll offer the FCC sample links, since the end result is practically (especially visually) identical. I think it even uses JSON instead of Mongo — so how's that for hypocrisy?
Timestamp Microservice
Feels like a misnomer, here. Not sure what purpose this actually serves. "Josh, do you know how to handle a Date object?" Yes.
Request Header Parser Microservice
This parses a header. More useful than the timestamp, probably. Really, these last two just exist to warm me up to navigating node / express routing features. Well, the tutorials were for that — these were to prove that I was paying attention.
URL Shortener Microservice
Curiously, there were some six years between this project and the last. Life kind of turned into a wilderness, and I wandered. It's amazing how easy problems are when the soul is not being crushed by completely unrelated problems. Anyway, this does that ever popular shrinking of URLs, both making them smaller and nearly impossible to remember. Frankly, it's useless. URLs are generally copied and pasted no matter the length. No idea why this (and so many other absurd things) became vogue and was excessively aped. Instead of going to one website, let's go to another website and be redirected — possibly multiple times.
Exercise Tracker
The idea's not bad — but the result is ugly. I did something similar for myself to track my collection of arcade games. No server, though. I just edit a *.js file directly, and use the *.html page for pleasantly viewing and sorting. This thing, though... I already mentioned that it was ugly, right? Clumsy? Not worth using? The designer of this test probably wanted the students to really go all out and make it personal. I allude to my Pokedex comment.
File Metadata Microservice
I was struck at how simple this project was. "Why?" was a question that ocurred to me. This is just a contrivance to show that I can read file metadata.
Quality Assurance
In spite of what FCC's landing page states, this was just an extension of the Back End projects. This added Chai, Chai-HTTP, and Mocha for testing purposes. Personally, I'd rather the test fit the idea, than the idea fit the test — the latter is what this section seemed to be about. This section also links to FCC's example pages for the final result. Also, as it's probably been apparent from the last several sections, old versions of libraries were used. This was to keep the FCC tests from breaking. All of these projects have been "archived" in preparation for a total curriculum overhaul. The BETA curriculum might become version 1.0 some time before Half-life 3 is released.
Metric-Imperial Converter
A very limited service that converts between three sets of units. I personally wouldn't use a webpage for this (unless it was local), it'd use an app. Probably wouldn't use JavaScript, either, since I prefer Python. JavaScript should stick with the DOM, since that's what it was designed for.
Issue Tracker
A really clunky issue tracker. The entire front end is so gross. There's, curiously, a hidden view that looks much better, but, for whatever reason, isn't even mentioned in the project. I'm guessing it's a relic that was forgotten about during some project rewrite.
Personal Library
Another clunky project. This isn't much different from the issue tracker project.
Sudoku Solver
This one is actually practical. I'm sure there are better solutions, but it's nice working on something that actually feels useful. Theoretically useful — I play Sudoku rarely, and I don't resort to solvers, but it'd be useful to check the answer.
American-British Translator
Translate from American to British and back. Clearly much easier to engineer than a translation to any other language. Probably because it's the same language.
Scientific Computing with Python
This section dealt with Python. As a language, I quite like Python. No more semicolons, for one. You may have noticed the utter lack of them in my JavaScript code. Yes, I rely on Automatic Semicolon Insertion. But this is about Python, not Javascript. Again, like with the database section, there is no front end. I could put up a Google Collab or something. I'll think about it.
Arithmetic Formatter
More of that "computer programmers are actually just string manipulators" thing I was talking about. This stacks a narrow domain of operations instead of leaving them flat.
Time Calculator
This adds two times together — 12-hour clock. I prefer a 24-hour clock.
Budget App
I wonder about these projects. Are they supposed to show us something so ugly in the hopes that we'll rage into useful creativity? Look how ugly the table is!
Polygon Area Calculator
A contrived way of introducing object-oriented programming. As with most education of this caliber, I'm rather inclined not to pursue what should otherwise be a useful way (among many) of looking at things.
Probability Calculator
I feel like there's a misnomer, here. What's returned is a statistical percentage based on experimentation. Probability and statistics are like peanut butter and jelly in a peanut butter and jelly sandwich — they work together, but they're not the same thing. As an aside, I eat peanut butter and Pop-Tarts (usually chocolate chip) sandwiches, because I don't really like jelly.
Data Analysis with Python
More Python. Same amount of live pages (none). More data visualization, but this time using, as should be expected, Python libraries — matplotlib, pandas, scipy, and seaborn. These all feel pretty similar — probably because they all rely on / borrow from each other.
Mean-Variance-Standard Deviation Calculator
This would be the pandas primer. Can you use six pandas functions?
Yes, yes, I can.
Demographic Data Analyzer
A series of queries applied over a very limited census.
Medical Data Visualizer
A heat map of some medical data. Being obese may have something to do with heart disease. But which came first? Hmmm?
Page View Time Series Visualizer
Here, we examine FCC's own data on its page views. A bar chart grouped by years.
Sea Level Predictor
Let's prophesy about the sea. Because limited (and dated) data is so dependable. Scatter plot and a couple of lines.