Giter Site home page Giter Site logo

wongwf82 / dev-test.joseflegal.com Goto Github PK

View Code? Open in Web Editor NEW

This project forked from joseflegal/dev-test.joseflegal.com

0.0 0.0 0.0 3.34 MB

A full stack application for coding take home challenge.

JavaScript 14.91% HTML 0.96% Vue 45.99% SCSS 38.14%

dev-test.joseflegal.com's Introduction

Josef coding challenge

Hello ๐Ÿ‘‹ & welcome to the Josef coding challenge. We appreciate you taking the time to complete the assignment, and we're excited about the prospect of you joining the team!

The goal of this assignment is to get a sense of how you think and solve problems. If you're having build issues ๐Ÿ”ง with the project, please don't hesitate to contact us.

The challenge is to build upon a simple Vue.js application.

You may want to install Vue Dev Tools to enrich your Vue dev experience.

How it works

  • Fork this repo into your account
  • Make a new branch
  • When you are finished, make a PR on your fork, and invite the person specified in the email to your fork
  • We will take a look at your solution, and we might ask you several questions after

Coding task

Frontend

In src/views/Layout.vue, you'll find a component loading data from an API.

  1. Render the list of files from the API.

  2. Create a reusable component to render the items, using a combination of props and slots.

  3. The design / UI is open for you to decide ๐ŸŽจ. Try to use some of the scss variables in src/styles/resources/_variables.scss to give it a Josef feel.

  4. Create a computed property that takes the file's data and filters it for tags that include kitten then sorts it by date.

Backend

In src/views/Rules.vue you'll find a Vue.js view with detailed instructions about the problem.

  1. Modify the checkGroup function in the file so it returns true if all rules and groups apply, otherwise false.

  2. Try your best to implement the task in an efficient and elegant way.

Extra credit

  1. The data is currently being managed locally in src/views/Layout.vue and src/views/Rules.vue, migrate it to a vuex module in src/store. See example in src/store/user.
  2. Write some unit tests for your challenge in /tests/unit.

QA

In src/views/QA.vue you'll find a Vue.js view that we want you to test ๐Ÿง.

  1. API testing: Using Postman(or a tool of your preference), test functionality of the REST API for the entity object. Validate listing, creating, editing and deleting objects. Additionally, test a uniqueness requirement for entity.id property. Objects can be accessed and modified using requests:
  GET    http://localhost:3000/entities  
  GET    http://localhost:3000/entities/[id] 
  POST   http://localhost:3000/entities  
  PUT    http://localhost:3000/entities/[id] 
  DELETE http://localhost:3000/entities/[id] 
  1. e2e frontend testing: Using Cypress(or a tool of your preference) test form submission on the QA page.
  2. Extra credit: Using Lighthouse run an audit of the QA page and document your performance and acesebility findings.

When done, save required files in the tests/ folder and add instructions to the README.md ๐Ÿ“.

  • Be sure and include as much information as you can about how you are testing and what future tools improvements you might add going forward.

Getting the project running

# Fork this project, then clone your fork
git clone https://github.com/...

cd dev-test.joseflegal.com

# Install dependencies
nvm install
npm install

# Start development server
npm run dev

# Visit http://localhost:9001

Scripts

Script Description
npm run dev Starts json server on 3000 and Compiles and hot-reloads for development on 9001
npm run test:unit Run your unit tests
npm run test:e2e Run your end-to-end tests
npm run lint Lints and fixes files
npm run build Compiles and minifies for production

Customize configuration

See Configuration Reference.

dev-test.joseflegal.com's People

Contributors

thomasbullock avatar kakauandme avatar petephm 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.