Share
Explore

icon picker
Four43 Labs - Summer Internship Challenges

Earn points for every challenge you do; the more points you earn, the greater your chances of getting selected for the Internship. You have to complete challenges worth at least 500 points to be shortlisted for an interview. You do not have to do all the challenges, but the ones you like, such that in total they add up to at least 500 points.
We know all of you will use AI in some form, and in fact, you can use AI. But the catch is,
You may have to explain the thought process and the code if asked
You will be asked to “live-edit” the application during the interview
You have only 48 Hours to complete the challenge and earn at least 500 points .

T1: Job Scraper API

Maximum Points: 200
Build a job post scrapper that scrapes job postings from classified sites like LinkedIn, Naukri, Indeed, etc., and provides the job details.
The API service will have a POST endpoint that accepts a URL that can belong to sites like LinkedIn.
You need to pull details from this URL, parse it, and extract key information -
Job / Role Title
Company Name
Location
Description
Appli
You should return this information as a response to the API in a formatted JSON
Stack:
Option 1: Python/FastAPI
Option 2: NodeJS + TypeScript

T2: Bulk Certificate Generator

Maximum Points: 300
Build a Certificate Generation Application that helps in bulk generation of E-Certificates for an uploaded CSV data and Certificate Image Template.
The app must have a visual editor for the Template and support positioning and setting variables into the template, and then filling it out in bulk and generating certificates.
You must store the certificate list in a backend/db and generate a unique URL for every certificate, which is either sent to the uploaded email of the user, or can by availed by entering the email of the user. This unique code / link can be further embedded within the Certificate generated as QR code.
Stack: React, TailwindCSS, Any Backend / DB

T3: Fancy QR Generator

Maximum Points: 100
Build a simple QR code generator app that can make a customizable QR code for a given link
Through the QR code generator UI, one must be able to change the colors, borders, and other properties of the QR code, and able to download it as image
Stack: React (Vite / NextJS)

T4: Simple Check-In System

Maximum Points: 300
Accept a list of participants via a CSV list, containing email of the user and other details.
Generate a unique QR code for every participant, and email their unique QR to them (you may use Resend API to mail)
Make a simple QR scanner that can scan this QR code, and validate entry
Stack: React (NextJS/Vite), Any Backend / DB

T5: Simple Link Tree

Maximum Points: 100
Build a link tree/bio link sharing portal where a logged-in user can create a “link-tree”, and then add his links and get a unique shareable URL.
Stack: React, Any Backend / DB

T6: Invoice Generator

Maximum Points: 100
Given a JSON data containing an array of products purchased (their rate, qty etc.), total amount, total tax, customer details etc. generate an Invoice
Invoice should have a standard header, with customer details and merchant details, and the items purchased and totals all in a standard format.
Invoice should be shown through a Webpage and also be printable.
Stack: React

T7: JSON to CSV Converter

Maximum Points: 100
Give a UI to upload or paste JSON data, which will then parsed and converted into CSV data including with a preview Table.
CSV should be downloadable
JSON data can have fields with arrays, and sub objects, and they should be represented in some form in the CSV data as well (after normalizing)
Implement something like -
Stack: React

How to Submit?

Things to submit for each challenges:-
GitHub Repository Link - Push your code into GitHub (as a private repository), invite @aswinshenoy as a collaborator and share the link
Screen Recording YT Link - A simple short screen recording of how your project looks and works, upload it as unlisted video on YouTube and share the link.
Deployment URL - Optional, good if you do.


Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.