Web Engineer Assignments

If you can develop on WordPress, you can directly apply for WordPress developer opening here.

At rtCamp, we believe coding should be fun. For the same reason, we have setup multiple assignments for you!

Choose an assignment based on your interest/expertise. Rather than merely completing tasks/steps mentioned below, go ahead and use your own imagination to make your code as good as possible!

Guidelines

  • Use git and Github from the start of your assignment.
  • Some assignments have multiple parts. It is must to complete all the parts.
  • Feel free to add any extra functionality you want to make your assignment better.
  • Use of Google is allowed & encouraged. 😉
  • You are also free to use 3rd party libraries. But please mention if you use them.

Web Hosting for Demo purpose

For all coding assignments below, you will need a web host to showcase your working demo.

You can use a free web hosting for your demo. Microsoft Azure, Google Cloud, Amazon AWS – all offers free trial plan. You can use any of these cloud providers or simply any free webhosting.

Coding Guidelines

Before you choose assignment, please note down our common minimum requirements applicable to all assignments.

  1. UI Framework – Use Twitter Bootstrap for frontend user interface. Make sure what you create looks nice!
  2. Responsive – Your assignment must work on mobile devices like iPhone/Android.
  3. Code Organisation – All 3rd party codes, library must be inside lib folder. No unwanted files e.g. IDE files, temporary files should be committed on git-repo. (Hint: Write a nice .gitignore)
  4. Coding Standard – You can use PHP Code Sniffer and JSHint on localhost. Additionally, you can should configure scrutinizer-ci so your code quality can be seen easily.
  5. Unit Testing – Assignments without unit tests will not be accepted. You may use wp-cli to setup unit testing easily.
  6. GitHub Readme – Write a nice GitHub Readme using markdown syntax. Make sure you include demo link and links to libraries used in readme.

Failure to meet any of above guidelines will result in disqualification.

List of Assignments

Complete any one assignment from the following list. There is no time limit. Quality is more important.

  1. Twitter-Timeline Challenge
  2. Facebook-Album Challenge

Assignment-1: Twitter-Timeline Challenge

Create a small PHP-script to accomplish following parts:

Part-1: User Timeline

  1. Start => User visits your script page.
  2. User will be asked to connect using his Twitter account using Twitter Auth.
  3. After authentication, your script will pull latest 10 tweets from his “home” timeline.
  4. 10 tweets will be displayed using a jQuery-slideshow.

Part-2: Followers Timeline

  1. Below jQuery-slideshow (in step#4 from part-1), display list 10 followers (you can take any 10 random followers).
  2. Also, display a search followers box. Add auto-suggest support. That means as soon as user starts typing, his followers will start showing up.
  3. When user will click on a follower name, 10 tweets from that follower’s user-timeline will be displayed in same jQuery-slider, without page refresh (use AJAX).

Part-3: Download Followers

  1. There will be a download button to download all followers of any user(we will input user @handler).
  2. Download can be performed in one of the following formats i.e. You choose the format you want. It would act as an advantage if you give the option to download the tweets in all the following formats:
    csv, xls, google-spreadhseet, pdf, xml and json formats.
  3. For Google-spreadsheet export feature, your app-user must have Google account. Your app should ask for permission to create spreadsheet on user’s Google-Drive.
  4. Once user clicks download button (after choosing option) all followers of specified user should be downloaded.

Note – We are aware of Twitter API limits for retrieving tweets/follower’s data although you have to overcome these by thinking outside the box, like we do at rtCamp.

 

Assignment-2: Facebook-Photos Challenge

Create a small PHP-script to accomplish following parts:

Part-1: Album Slideshow

  1. User visits your script page
  2. User will be asked to connect using his FB account
  3. Once authenticated, your script will pull his album list from FB
  4. User will click on an album name/thumbnail
  5. A jQuery-slideshow will start showing photos in that album (in full-screen mode)

Part-2: Download Album

  1. Beside every album icon (step #4 in part-1), add a new icon/button saying “Download This Album”
  2. When the user clicks on that button, your script will fetch all photos in that album behind the scene and zip them inside a folder on server.
  3. You may start a “progress bar” as soon as user-click download button as download process may take time.
  4. Once zip building on server completes, show user link to zip file.
  5. When user clicks zip-file link, it will download zip folder without opening any new page.
  6. Beside album names, add a checkbox. Then add a common “Download Selected Album” button. This button will download selected albums into a common zip that will contain one folder for each album. Folder-name will be album-name.
  7. Also, add a big “Download All” button. This button will download all albums in a zip, similar to above.

Part-3: Backup albums to Google Drive

  1. Provide the user with an option to move albums to a Google Drive.
    • The Google Drive will contain a master folder whose name will be of the format facebook_<username>_albums where username will be the Facebook username of the user.
    • The user’s Facebook albums will be backed up in this master folder. Photos from each album will go inside their respective folders. Folder names will be the same as the Facebook album names.
  2. To improve the user experience, include the three following buttons:
    • “Move” button- This button will appear under each album on your website. When clicked, the corresponding album only will be moved to Google Drive
    • “Move Selected”- This button will work along with a checkbox system. The user can select a few albums via checkboxes and click on this button. Only the selected albums will be moved to Google Drive
    • “Move All”- This button will immediately move all user albums to Google Drive within their respective folders.
  3. Make sure that the user is asked to connect to their Google account only once, no matter how many times they choose to move data.

Note – Before submitting your assignment for review, please add Facebook profile with username ‘rtc.test‘ as tester while your app is in development mode. This will expedite the review process.

Submission Process

  1. Once you complete your assignment, i.e your demo is ready & codes are on GitHub, head over to this job application form.
  2. You will see a field there for assignment details. In that field, mention demo URL, GitHub’s code-repo URL & any extra notes/information you want to convey.
  3. Once we check your codes, we may send you some minor enhancements/tasks to your codes to check your skills further.
  4. If you have any questions, doubts, etc. please email hiring@rtcamp.com (our HR team).

Link: FAQ’s | Work Culture | Application Form