My name is Charles.
I'm a web developer.

About me

I'm a front-end developer with a focus on clean, scalable designs. I take mock-ups from the UI/UX team and put them into action, or work hand in hand with them to create beautiful, user-friendly sites.

I can develop SPAs with React or landing pages in vanilla JavScript, CSS, and HTML. I work on the back-end to create RESTful APIS using Node.js with Express and MongoDB, but I'm willing to learn just about any tool.

I wrote the code for this portfolio site from scratch. Right now it showcases projects that I developed as part of my Udemy courses, but I will add other things that I am working on to it soon.

my résumé

Projects

Fitness Timer (WIP)

external link logo github logo

This will be a full-featured fitness routine app built in React. It's a work-in-progress - the first part that I've built is the actual timer, figuring that would be the most challenging. It looks best in mobile, so I recommend using Chrome's or Firefox's mobile view if you're on desktop.

The timer receives an array containing information about each exercise in the routine and dynamically generates the inner and outer rings. It runs using requestAnimationFrame and bases its timing on the timestamp passed to the callback function, which makes it fairly accurate. It also means that it will 'catch up' if the computer can't keep up with the timer for whatever reason or the user leaves the window.

It also only triggers the next requestAnimationFrame every 10th of a second (at default 60hz), so it should be fairly CPU-friendly.

#React #Redux #CSS #JavaScript #Router

Weather App

external link logo github logo

This app's back-end is built in Node.js and Express. It accesses two different APIs, mapbox.com and weatherstack.com, to get coordinates from a string place name and weather from the coordinates.

#Node.js #Express #RESTful

Chat App

external link logo github logo

This app's back-end is built in Node.js and Express. Passing text between the server and client is handled with socket.io.

The app actually supports more than one chat room at the same time.

#Node.js #Express #socket.io

Taskmanager API

github logo

The code is a full API for CRUD operations with user accounts. It stores multiple tokens to allow logging in with multiple devices simultaneously.

There is also a CRUD interface for managing tasks associated with a user.

Automated testing is done using Jest.

There is currently no front-end developed for this, but I intend to use parts of it with the chat app in the near future.

#MongoDB #Node.js #Express #mongoose #RESTful #Jest

Quote App

external link logo github logo

This SPA was built in React using React Router 6. The backend runs on firebase.

There is also a comment section unique to every quote.

#React #Router #firebase

Portfolio

github logo

You're currently looking at it. The site works equally well on desktop or mobile. The code for the accordian effect at the top of the page can be easily added to another page. Instructions are on Github.

#HTML #CSS3 #JavaScript

Contact me

...or email me.