GithubHelp home page GithubHelp logo

tylerami / shopify-2022 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 55.41 MB

This repository is an online CRUD service for a fictional logistics company, LogistX. My submission for Shopify's 2022 Summer (Back-end) Internship challenge.

Home Page: https://shopify-backend-2022.netlify.app/

HTML 8.99% CSS 13.07% JavaScript 77.94%

shopify-2022's Introduction

Shopify Backend Intern Challenge - Summer 2022

Check out the project here!

This document contains documentation and recordings of all technologies and features implented within the project.

Table of Contents

TL;DR

This application is a prototype called LogistX - an intuitive CRUD API for inventory management that allows for inventory items to be created, updated, and monitored using custom locations.

List of Extra Features

  • Ability to create warehouses/locations and assign inventory to specific locations
  • ER Diagram, designed with LucidChart
  • MySQL Database ORM
  • Unit testing with Jest and Supertest

Technologies

Click on any of the following technologies to view relevant documentation:

Instructions

To run this project locally instead of viewing the live site, follow these steps:

  1. Clone this repository locally
  2. Ensure node.js and npm are both installed and up to date on your machine
  3. Open a terminal in the server folder and enter the command: $ node index
  4. Open a new terminal in the client folder and enter the command: $ npm start

To run unit tests, simply open a terminal in the server folder and enter the command: $ npm test

Project Requirements

Basic CRUD Functionality. This project enables you to:

Create Inventory Items

gid of Create Inventory Items

View a list of Inventory Items

gif of View a list of Inventory Items

Edit Inventory Items

gif of Edit Inventory Items

Delete Inventory Items

gif of Delete Inventory Items

Extra Features

Ability to create warehouses/locations and assign inventory to specific locations

Users can create custom warehouses/shipping centers/vehicles and save them as locations that can be assigned to any inventory item.

gif of create warehouses

MySQL Database ORM

This project uses sequelize for Object-Relational Mapping, as shown in the following Entity-Relationship model

png of MySQL Database ORM

Unit testing

The testsuite for this project contains 7 tests using Supertest and Jest modules that verify expected responses for all 7 API endpoints. These tests evaluate both the inventory CRUD service and location endpoint responses for proper status codes and deep object equality.

gif of testsuite

Reflections

Given more time, I would implement addition testing to verify responses to bad requests include the proper status codes. In addition, the location/warehouse assignment functionality could be extended to allow for shipments to be tracked, warehouse capacity to be monitored, and items to be categorized. Lastly, I would adjust the item ORM model to use a foreign key for the relevant location table instead of a string key.

shopify-2022's People

Contributors

tylerami avatar

Watchers

 avatar

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.