Git Product home page Git Product logo

javascript-webcrawler-starter's Introduction

Please, note that you have 5 days to complete the exercise from the day it has been sent out.

Here are the instructions for the Buildit - Wipro Digital Frontend Engineer:

What we are looking for

There are no tricks or hidden agendas.

The purpose of this exercise is for you to demonstrate your technical knowledge, reasoning, and engineering practices using current software development technologies and methods.

Please make sure your code is clear and demonstrates your best practices.

The exercise should be done as if you were building software to hand off to someone else.

Refrain from using this as an opportunity to learn a new framework, library or paradigm besides what you feel would be essential to completing this task.

Your solution will form the basis for discussion in subsequent interviews.

What you need to do

Please write a simple, web crawler in Javascript that works in the browser.

As a starting point, a dummy implementation exists in src/crawler/crawl-domain.js.

The crawler should be limited to one domain.

Given a starting URL โ€“ say https://test.com - it should visit all pages within the domain, but not follow the links to external sites such as Google or Twitter.

For each page that is crawled, you must perform the following:

  • Embed the page content in a container element
  • Add a tab element that, when clicked, will show the previously embedded content
  • Embed a JSON object as described in src/model.js in a pre element

In addition to the crawler, you must write helper/boilerplate functionality as described/stubbed within src/app/helpers.js.

Your code must include unit tests.

Where possible please include your commit history to provide visibility of your thinking and working practice.

What we give you

We know you're busy - you probably have other interviews and exercises from many other potential employers, and most likely you're also still working hard for your current employer.

To that end, this exercise gives you most of what you need in terms of a working UI. For reference, we're using a plain copy of Bulma for styling.

Having said that, you are free to modify the code as you see fit. However, please ensure that the end-to-end test suite e2e/webcrawler.test.js continues to work.

What you need to share with us

  • A working crawler as per requirements above
  • An updated README.md explaining:
  • Reasoning and describe any trade offs
  • Explanation of what could be done with more time
  • Project builds / runs / tests as per instruction

Good luck and thank you for your time - we look forward to seeing your creation.

Run Requirements

  • node >= 12
  • yarn >= 1.22

Setup the development environment

$ yarn

Running the app

Once running, you can point your browser at http://localhost:8080.

  • Run with the command
$ yarn serve
  • Run and watch for changes
$ yarn serve:watch
  • Run unit tests for suites under src
$ yarn test
  • Run end-to-end tests for suites under e2e
$ yarn test:e2e
  • Clean up dist
$ yarn clean
  • Build dist manually (yarn serve + yarn serve:watch build automatically)
$ yarn build

javascript-webcrawler-starter's People

Contributors

frostiebot avatar

Watchers

 avatar

Forkers

shipyardtech

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.