Node.js/Selenium Web Crawler Project

En curso Publicado hace 7 años Pagado a la entrega
En curso Pagado a la entrega

Product Overview/Background

Our product is an iPhone app written in Objective-C. The iPhone app functions as a client which makes request to our various server-side application, one of them being our beauty appointment booking system (written in Node.js). Whenever a user wants to book a beauty appointment in our app, they go to the salon's profile page and click on the service they'd like. This click sends a request to our Booking Server (via WebSockets), and then our Booking server uses Selenium to crawl the specific website for that salon to automatically book the appointment and report it back to the iPhone client. Additionally, our booking server makes use of BrowserStack to handle processing multiple browser sessions simultaneously in the cloud.

Task for You

We're looking for engineers who can support the crawlers for the various salon systems that we work with. There are number of salon software companies, and our automatic booking system needs to support all of them. For your this project, we'd like you to implement support for just one of the salon software providers. We will provide you with a list of test cases to test against. You will be required to implement three general functions and ensure they work across the set of test cases:

• getSalonData — this function just collects the names of the services, prices, technicians, and returns them to the server

• searchBookings — this function receives a date and service name as an argument and then crawls the website and returns all available appointment slots

• requestBooking — this function receives a date, service, time, and client contact info as arguments then crawls the website and books the appointment, returning the results to the client.

Structure/Technical Details

We've already implemented a few of these, so we have examples already in the codebase. Once you have signed the appropriate documents and have been on-boarded, we can grant you access to our GitHub repository, and Asana task management. We already have a codebase laid out for the crawlers, you just need to extend it by adding on support for the additional required system and making sure it can work with the current system.

Example Crawler Code

See the attached [login to view URL] for an example of a crawler made for one of the booking systems. This will give you an example of the kind of routines we do (e.g. using jQuery to manipulate the DOM, click element, access dropdown menus, send data back to clients, etc).

Requirements

Experience with JavaScript / Node.js

Experience w jQuery, DOM manipulation, HTML

Familiar with the concept of (Web)Sockets

Comfortable with Git

Must have a GitHub account (provide us your username so we can show you sample code)

Experience with Selenium Web Driver JS

Comfortable using Asana for coordinating with the team

First Code Handin due Friday, September 23rd by 5 PM PST

Entries submitted after September 23rd , 5 PM PST will be disqualified

Please make sure to test your code against the provided test cases PRIOR to this date.

Engineering Team will review and test your code the week of Sept 19.

You will be expected to be available to fix any issues revealed during review and make sure that your code passes all tests by Friday, Sept 30th at 5 PM PST

Code that does not pass the tests by Friday, Sept 30th at 5 PM PST will be disqualified

Payment Details

Project fee will be paid upon successful passing of all test cases, as confirmed by the Engineering Team

All code must be submitted for review by Friday, September 23, at 5 PM PST. Late entries will be disqualified and will not receive payment.

All code must be passing test cases by no later than Friday, September 30th at 5 PM PST in order to receive payment for the project.

Next Steps

Please review the Requirements and make sure that you meet them. If you are interested in working on this project, please do the following:

Include links to any crawler/Selenium projects you’ve done

Provide your GitHub user name

JavaScript jQuery / Prototype Node.js Ruby on Rails E/S Socket

Nº del proyecto: #11514505

Sobre el proyecto

9 propuestas Proyecto remoto Activo hace 7 años