Giter Club home page Giter Club logo

bobs-store's Introduction

Bobs Store

Table of contents

Live Site

Live Site Here

Project Board

Check out the project board I used for this project here.

I really like using GitHub Projects for keeping track of progress. The built in automation is awesome!

Technologies Used

I chose to use Gatsby as my framework for this project. Using Gatsby is definitely overkill for the size of this project, but entertaining the idea that this site is real and will be built out further, Gatsby is a great choice. Using Gatsby allowed me to get rolling on the project quickly by making it easy to get started with a base project and React. Not only is it easy to get going with Gatsby, but I am able to take advantage of Gatsby's build in page loading optimization and other features, as well as the ability to easily implement a blog or payment processing. This sets this project up to be scaled if we chose to continue building out Bob's Site.

React was also a bit of overkill, I could have easily have completed this site with vanilla JS and CSS, but using React allowed me to keep my code more organized and speed up my development times.

SCSS is also a very handy tool to me. The features built in to SCSS allowed me to target and manipulate elements more easily. Saving me some time. In the future if this site gains complexity we could add mixins and other things to alleviate repeated styles.

Global CSS vars are nice to use to make commonly occurring styles easy to access and update. I commonly use CSS vars to store variables relating to spacing, color, typography, and etc.

I chose to host Bob's Store on Netlify, primarily because of the ease of deployment and built in features. I find it very useful being able to see a "deploy preview" on a branch before code is merged.

Issues / Future Improvements

  • When data is being fetched loading indicators should be displayed to the user.
  • There is a lot more data that we can display about our products from search results. It would be a great improvement to display some of this additional data.
  • When there is an error displaying a remote image either display a placeholder or no image.
  • Pagination could use improvement. When there are many pages of results it would be better to only show pages within a specified range of the current page.
  • Snapshot Testing
  • Unit Testing
  • Configure TravisCI to handle CI/CD after we have some tests.

Screenshots

screencapture-localhost-8000-2021-02-15-09_36_36

Installation

Prerequisites

  • You have git installed globally
  • You have gatsby-cli installed globally
  • You have node installed globally
  • You have nvm installed globally


  1. First clone the repository to your local machine

`git clone https://github.com/bradybridges/bobs-store.git`
  1. Change to project directory

`cd bobs-store`
  1. Ensure you are using the projects specified version of Node

`nvm use`
  1. Install Dependencies

`yarn install` OR `npm install`
  1. Start the development server!

`gatsby develop`
  1. Bobs Store can now be accessed at

`localhost:8000`

bobs-store's People

Contributors

bradybridges avatar

Watchers

James Cloos avatar  avatar

bobs-store's Issues

Product fetch error messages

Currently, we only display a unique message to the user if our error includes "Failed to fetch". Let's look into if there are more error messages the user might encounter. Provide a personalized error message to the user for these various error messages if they exist.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.