Shane Michael McGrath's repositories

MyFirstApp

Built in Node.js open source server framework. In this project I moved from client-side development (using JavaScript, HTML, and CSS) to building a server-side web application using the Express.js web framework hosted in Node.js runtime environment. The site includes a flatty style landing page including navigatation bar, sign-up forms, staff info etc. It has an uncluttered and minimal UI. The backend API’s communicated with databases designed using MongoDB, an example of a NoSQL database program using JSON-like objects with schemas. All APIs, including GET, PUT, UPDATE and DELETE were tested using Postman. Great experience using PuTTY open-source terminal emulator, working remotely over SSH network protocol. Securing my API with authentication; hashing passwords using Bcrypt and issuing tokens with JSON Web Token (JWT). New additions help to restrict access and ensure tokens are verified. Previous to this the back-end APIs could be easily accessed via the URL. User comments coudl be retrieved, new ones saved, deleted or updated. Hashing is a means of transforming a string of characters (passwords, in my case) into a different and larger set of characters, thus protecting our sensitive data. Bcrypt is the password hashing function used.

Language:HTMLStargazers:1Issues:0Issues:0
Language:CSSStargazers:0Issues:1Issues:0

AdventOfCode2019

Advent Of Code

Language:RubyStargazers:0Issues:0Issues:0

ArrayAdder

Simple java program using for loops to allow a user to populate an array of their chosen dimensions and print the final array with the sum total of each value in the array.

Language:JavaStargazers:0Issues:0Issues:0

Beer-Song

Simple java script designed to iterate through "99 bottles of beer on the wall" using while loops and if statements. Built in a Linux Teminal environment using a raspberry pi.

Language:JavaStargazers:0Issues:0Issues:0
Language:ElixirStargazers:0Issues:0Issues:0

CrystalBall

Building a digital crystall ball with an Arduino board using a tilt switch and an LCD screen to output.

Language:ArduinoStargazers:0Issues:0Issues:0

DigitCounter

Java program that counts the number of digits in an integer entered by the user. The program repeatedly asks for input and displays the number of digits the input integer has. This implementation converts the users input to a string and uses the .length( ) method to find the number of characters in it.

Language:JavaStargazers:0Issues:0Issues:0

DNScheckBashScript

Simple Bash script to check the a list of hosts from the domain name system to retrieve the IP address for a chosen domain name.

Language:ShellStargazers:0Issues:0Issues:0

ExponentiationBySquaring

Exponentation by squaring is an algorithm that will quickly calculate x^n given user input. x and n are integers in this case. This implementation uses recursion, whereby a function calls itself within it's own body. The answer is outputted on the console.

Language:JavaStargazers:0Issues:0Issues:0

FibonacciSequence

Two implementations in Java to generat the Fibonacci sequence to a length chosen by the user. One recursive and one using iterative for loop. Switch statement is used to control flow.

Language:JavaStargazers:0Issues:0Issues:0

GiphyAPI

Public facing API docs, notes and more

Stargazers:0Issues:0Issues:0

LeapYearIdentifier

Java program to take an inputted year from user and inform them whether it is a leap year or not. The logic of the if statements fits the following criteria: It is a leap year if the year is divisible by 4 but not by 100 (i.e. 1796 is a leap year because it is divisible by 4 but not by 100). A year that is divisible by both 4 and 100 is a leap year if it is also divisible by 400 (i.e. 2000 is a leap year but 1800 is not).

Language:JavaStargazers:0Issues:0Issues:0

LightTheremin

Building a Light Theremin musical instrument with the Arduino board. A phototransistor is used to measure the amount of light reaching the instrument. This is used to estimate how close the musicians hand is to the instrument at a given moment. More specifically the variation of voltage is used to guage the distance. This is then mapped to a range of sound frequencies. A piezo buzzer is used to produce the sound.

Language:ArduinoStargazers:0Issues:0Issues:0

Quick-Sort

Quick Sort is another example of a divide and conquer algorithm. It requires the identification of an arbitrary pivot point (ideally somewhere near the centre) around which the other values of the array are ordered relatively. This pivot creates a partition in the array. To the left of the pivot we aim to place the values lower than it and to the right the higher values.

Language:JavaStargazers:0Issues:0Issues:0

SalesEmployee

Java program to calculate the commision rate for certain employees within a company. The Superclass is abstact with two subclasses extending from it. Getter and setters are used to access private and protected variables. A driver class is built to test the program and serialize the resulting data in a chosen format.

Language:JavaStargazers:0Issues:0Issues:0

smooshing

Building a simple portfolio Vue.js app using Nuxt

Language:VueStargazers:0Issues:1Issues:0

TemperatureSensorDataAnalysis

Using Node.js, Plotly and an Arduino to get real-time data from a temperature sensor and generate visualisation.

Language:C++Stargazers:0Issues:0Issues:0

todoListApi

RESTful to-do list API

Stargazers:0Issues:0Issues:0

TwitterBot

Twitter Bot built using JavaScript and node.js runetime environment. Communicating and authenticating to the twitter API to carry out GET, POST and STREAM requests.

Language:JavaScriptStargazers:0Issues:0Issues:0

website

Kubernetes website and documentation repo:

Language:HTMLLicense:CC-BY-4.0Stargazers:0Issues:0Issues:0