For this project I created a clone of the lodash JavaScript library to practice creating various types of functions using JS.
The Lotide project is a modular collection of functions that operate on data, namely Arrays and Objects. In creating these functions, I became more comfortable with FOCAL as well as writing modular code and Automated Testing (by writing unit tests with). At first, I create my own assertion functions for writing test code, but by the end of the project I implimented the industry-standard libraries Mocha and Chai for my automated testing. Through Lotide, I also learned about software dependencies, package managementand NPM. I then published my Lotide library as an NPM here
The ISS Spotter project taught me how to make, manipulate & itegrate API requests. The mini app takes in a users IP address using ipify, uses this IP address to find the users location using FreeGeoIP and passes it into the iss-pass url request, eg:
https://iss-pass.herokuapp.com/json/?lat=${coords.latitude}&lon=${coords.longitude};

The result shows the next 5 passover times!
Drawing on the fundamentals of Networking with HTTP and JavaScript, I built an Express Server that handles requests from the browser (client). TinyApp is a web application which allows users to shorten long URLs, much like TinyURL.com and bit.ly do. This project also introduced me to sessions and cookies, creating paths for users to log in and access their personalized data.
This Project taught me how to:

Tweeter is a single-page Twitter clone, where users can create short posts of up to 140 characters and have them append to the main page. Posts are sequential, with the most recent posts appearing at the top of the page. To do so, Tweeter fetches a list of posts from a simplified ‘server’ and allows users to add posts to this list dynamically. All the requests will be made asynchronously, which will allow us to gain familiarity using the jQuery library to make these requests.
This Project taught me how to:

Character Counter -- Using jQuery I was able to impliment a real time character counter, turning red once the count surpasses 140 characters.

Using CSS Media Queries, I created a dynamic web app which switches to a mobile layout once the width shrinks below 1024px.
The purpose of this project was to design a database and use server-side JavaScript to display the information from queries to web pages. I was able to apply my existing knowledge of complex SQL queries, database and ERD (entity relationship diagram) design to integrate the database with a Node backend.
This Project taught me how to:

Users have the ability to carry out custom searches using one or multiple criteria to search for the listing which is right for them.

Users have the opportunity to log in and view their listings and reservations, personalized to them.

This ERD shows the relationship between the tables within the database, making it easier to understand the SQL queries within the app. (Created using dbdiagram.io)
For my midterm project I am currently creating a food ordering app for a single restaurant. The restaurant and client are both notified when an order is placed, since this app serves as an intermediary.
When an order is placed, the restaurant receives the order via SMS. The restaurant can then specify how long it will take to fulfill it. Once they provide this information, the website updates for the client and also notifies them via SMS.
We have integrated a modern telecomm API service called Twilio to implement SMS communication from the website to the client and restaurant.
This project required me to work in a team of three people, teaching me some valuable GitHub skills such as dealing with merge conflicts.
