My Projects
Within this portfolio, you'll discover a selection of my personal coding projects, each accompanied by links to both the source code and, where available, the live application for direct exploration.
Asteroids-JS
- TypeScript
- Javascript
- Webpack
My own take on the classic Asteroids game, employing pure JavaScript initially and subsequently implementing Webpack for code minification, optimising the loading process for web browsers.
In the course of this project, I expanded my skill set by incorporating TypeScript. This involved reconfiguring the original code into modular components, establishing a robust core game codebase that could serve as a base in future game projects.
Weather Wingman
- Javascript
- Node.js
- React
- Vite
Responsive web app that provides location-based weather forecasting. A front-end React app with a Node.js back-end server which handles the fetching of data from 3rd party APIs. Users can get the weather of a location by searching for a city, postcode, or full/partial address.
The search query is utilised to fetch data from an external API, retrieving the longitude and latitude of the closest matching location. Subsequently, this longitude and latitude data is used to query a separate API for the weather information displayed by the front-end app.
Portfolio Website
- Javascript
- Node.js
- React
- Vite
The website you are currently exploring is the product of this project. Designed to adapt seamlessly to diverse devices and screens, it leverages technologies like React and Flex CSS and reflects my web development skills.
Of particular note, this project also marked my introduction to 'Vite', a frontend build tool akin to Webpack, which I found the experience to be thoroughly enjoyable.
Task Manager API
- Javascript
- Node.js
- Jest
- MongoDB
As part of my exploration of JSON and RESTful APIs, I set out to build an Express web server hosting a 'task manager' API. This project involved creating two distinct API routes—one for user management and authentication, and another for task management. Task-related actions were limited to logged-in users, enabling them to create, query, edit, and delete tasks.
User and task data were securely stored through MongoDB, while jsonwebtoken was employed to validate login sessions. Rigorous testing was conducted using the 'Postman' desktop application, as depicted in the accompanying screenshot.