React & GraphQL Web App

I recently went through the application process for a local start up, and while I didn’t get the job, I did get the chance to try out some tools that I’ve never used before.

The coding challenge was to create a single page app using react that would list all of the star wars movies, the list of characters in each movie, and a profile page for each character.

This challenge was my first time ever building a full react web app, I had previously played around with building components a little bit on code pen.

The back end of this site was a GraphQL server, and used GraphQL and Apollo with react to query the data. This was also my first time working with GraphQL and Apollo. Learning to write queries for GraphQL didn’t take me too long, it reminded me of SPARQL, which is a graph-based query language for semantic web databases.

With this project I also played around some with mobile design for the first time. I’ve always tried to design my pages to be responsive to screen size, but of course responsive and mobile-friendly are not the same thing. I used media queries for the first time to cater the content to the screen size. So instead of displaying a four column grid of movies/characters there is a single column display for small screens.

Here are some screenshots of the final product. This was created over the course of about 4-5 days.

starwarsapp1starwarsapp2starwarsapp3starwarsapp4

And here are some simulated iPhone X screen shots.

starwarsappmobile1starwarsappmobile2starwarsappmobile3starwarsappmobile4

I hosted the app online using heroku, and it can be viewed [HERE]

The github repo for this app can be found [HERE]

Research Topics

One thing that I would like to do with this blog is take the time to research some areas of web development that I do not have experience with, or would like to explore deeper. I often see blog posts on certain topics and think to myself that I should look into it further, or try out a certain technology, but later never comes. Staying up with new technologies and continuing to learn new skills is important in an ever-changing industry like web development.

Some topics that I have come up with off the top of my head that I would like to research are:

vTEAjgrid-vs-flexbox

Web Layout: DIVs vs Flexbox vs Grids

I’ve only used DIVs (and tables in my much younger days :p), but I would like to try out flexboxes and the new CSS grids that I have been reading about. From what I understand there are different uses for each and one doesn’t necessarily replace the other, but when should you use each layout technology, and can they be used together?

convert-css-to-sass-twitter

SAAS

I don’t know much about SAAS, but I do not that it is supposed to make your life a lot easier when it comes to CSS.

how-to-improve-your-online-security-and-privacy-in-10-easy-steps

Security

Security online is more important now than ever. It seems like we hear about new data breaches every day, and no company is safe. Of course the most well known security breach to date was equifax. I’ve learned some basics of security in school, but I would like to delve in deeper and find out more about best practice in the real world.

open-source-ecommerce-platforms

Payment/Checkout Services

Of course everyone knows about paypal and amazon pay, but there are many other online services that can be used for eCommerce sites. Many security breaches that websites face involve the payment process. Customers need to enter sensitive data and they out their trust in the website their using to protect their information, process the order correctly, and get their item delivered to them in a timely manner. I do not have any experience setting up a payment system on an eCommerce site, so this is an area that I would like to learn more about.

image004

User Interface Design Principles

I have taken courses on design and user interfaces, but I would like to brush up on some of the core design principles.

41gFDJ5s1vL._SX399_BO1,204,203,200_

Evil By Design – Chris Nodder

User Experience

I would like to learn more about user experience design. The way users navigate through your website is very important. You want users to be able to find what they’re looking for without being frustrated and having the right design can increase sales, newsletter signups, etc. In one of the classes I took we went through many of the concepts in the book Evil By Design, which talked a lot about how to guide users through your site and encourage the desired behavior through the design of your site. This book focused on user experience design from the point of view of a business owner, but I would like to look into user experience from the view of the user and helping the user make the most of their experience.

Mobile-Web-Design-Strategy

Mobile Web Development

Mobile web development is one of those topics that I know a lot about from a users perspective, but not from a developer’s perspective. I know that I personally do about 75% or more of my web browsing from my phone, and I’m sure I’m not alone in that. Having a mobile friendly site can make or break a company in today’s business model. I try to design responsive sites, which are somewhat mobile friendly in most cases, but I have never truly designed a mobile website. Having developed some mobile apps and learning about material design does give me some insight into mobile web development, but I would like to get my feet wet and actually make a mobile web site.

I hope to look into many of these topics in the coming weeks, and I plan to write up what I learn on this blog. I hope that this exercise will be as informative to others as it will hopefully be to me.