Build a screenshot pipeline

user profile photouser profile photouser profile photo878 developers have joined this project.

What you will practice

In this project, you'll practice using CI/CD tools to keep screenshots of your webpage up-to-date.

Introduction

Set up a CI/CD workflow which will produce a screenshot of your homepage and keep it updated as you keep changing the code. This kind of always-up-to-date screenshot can be useful for your README or as the basis of marketing materials that include screenshots of your website. You can even use these images to perform visual regression testing!

Requirements

  • Create a webpage with any technology you want (a simple create-*-app can suffice) or use a webpage you already have or an open source project you can easily fork
  • Create a script that takes a screenshot of the webpage.
  • Set up a trigger to take a new screenshot every time you commit to the main branch of the repo
  • Note that the screenshot should be taken by code running in the CI/CD environment, not on your own machine; you want the screenshot to look just like production
  • Include that screenshot in your README to show off.
  • From now on, your README should always display an up-to-date screenshot of your webpage without any other manual intervention other than pushing to the main branch

For an extra challenge

  • Use the same system to implement visual regression testing on that screenshot.
  • Perform some image manipulation on the screenshot before inserting it in the README. A good example is collaging the screenshot on an image of a laptop to simulate viewing the webpage on a physical device.

Suggested Implementation

This challenge is technology-agnostic. However, one particularly easy stack to do this with would be to have:

You have a lot of options at every level here, you will need:
A repo

A CI/CD system

A Screenshotting library or tool

Hit a programming wall?
Get help from our mentors

  • Post request free
  • First 15 mins free

Suggested languages and frameworks

Node.jsReact

Difficulty

easy

Contributed by

CTO at Buddy

Interested in this project?

Shorten your learning curve with on-demand programming help

The awesome set of verified mentors will provide guidance and mentoring help when you are stuck.

Suresh Atta

  • Post request free
  • First 15 mins free
Shorten your learning curve with on-demand programming help

Browse more projects

More coming soon...