Create a Semantic Portfolio Page Layout
EasyHTML
Build a basic portfolio page using semantic tags like <header>, <main>, <section>, <article>, and <footer>.
Example:
Input: Structure of the page
Output: Header, hero section, projects section, about section, footer
Build a Blog Layout Using <article> and <section>
EasyHTML
Create a simple blog page with a main article and related posts using <article> and <section> tags.
Example:
Input: Blog main content + related posts
Output: One main article and a section of 3 related post teasers
Design a Contact Form with Proper Labels
EasyHTML
Build a contact form with fields for name, email, subject, and message using proper <label> and input associations.
Example:
Input: Name, Email, Subject, Message
Output: Accessible form with labeled fields
Create a FAQ Page Using <details> and <summary>
EasyHTML
Create an FAQ section where each question can be expanded/collapsed using <details> and <summary>.
Example:
Input: List of 5 questions
Output: All questions shown as clickable summaries with hidden answers
Make a Product Landing Page Hero Section
EasyHTML
Build a hero section for a product with a headline, subheading, image placeholder, and call-to-action button.
Example:
Input: Product title, description, CTA button
Output: Hero with structured promotional content
Build a Pricing Table with Multiple Plans
MediumHTML
Create a pricing section with at least three pricing plans displayed side-by-side using semantic HTML.
Example:
Input: Basic, Pro, Premium plans
Output: Three structured pricing blocks with name, price, features, and button
Create an Image Gallery with Captions
EasyHTML
Build an image gallery with at least six images, each having a caption using <figure> and <figcaption>.
Example:
Input: 6 image URLs
Output: Grid of images with textual captions under each
Create a Navigation Menu with Anchor Links
EasyHTML
Build a top navigation bar that scrolls to different sections of the same page using anchor links.
Example:
Input: Sections: Home, About, Services, Contact
Output: Nav with links that jump to each section
Build a Resume Page Using Lists and Headings
EasyHTML
Create a resume-style page that lists education, experience, skills, and projects using headings and lists.
Example:
Input: Name + sections like Education and Skills
Output: A single-page resume structure with listed items
Create a Multi-Step Form Structure (No JS)
MediumHTML
Design the HTML structure for a multi-step form (personal info, address, review) without adding actual step logic.
Example:
Input: Sections: Step 1, Step 2, Step 3
Output: Form divided visually into multiple blocks
Build a Terms & Conditions Page Layout
EasyHTML
Create a long text-based Terms & Conditions page with proper headings, paragraphs, and internal links.
Example:
Input: Legal text sections
Output: Multi-heading structured document
Create a Documentation Page with Table of Contents
MediumHTML
Build a documentation-style page with a table of contents at the top linking to different sections below.
Example:
Input: Sections: Getting Started, Installation, Usage, API, FAQ
Output: Clickable TOC at top + content below
Build a 404 Not Found Page
EasyHTML
Create a simple 404 page with an error message, short explanation, and a link back to the homepage.
Example:
Input: User visits unknown URL
Output: Shows 404 page with 'Go to Home' link
Create an Accessibility-Friendly Form
MediumHTML
Build a form with labels, aria attributes where needed, and proper error message markup.
Example:
Input: Form with name/email + error states
Output: Form that screen readers can interpret clearly
Make a Simple Newsletter Subscription Section
EasyHTML
Create a small newsletter block with a title, short text, email input, and subscribe button.
Example:
Input: Title + Email input + Button
Output: Compact email subscription section
Design a Multi-Column Footer
EasyHTML
Create a footer with 3–4 columns: links, social icons placeholder, and a small about text.
Example:
Input: Links: About, Contact, Social placeholders
Output: Footer with different grouped link sections
Create a Feature List Using Definition Lists
EasyHTML
Use <dl>, <dt>, and <dd> to create a feature list that explains terms and their descriptions.
Example:
Input: Feature names and descriptions
Output: Clean feature list using definition list tags
Build a Simple Image + Text Media Object
EasyHTML
Create a layout where an image is on the left and text content is on the right, like a typical media object.
Example:
Input: Image + Text
Output: Horizontal layout with clear separation of media and text
Create a Simple Table for Product Comparison
MediumHTML
Build a table comparing at least three products with rows for features and columns for each product.
Example:
Input: 3 products, 5 features
Output: Comparison table with clear headings and values
Make a Multi-Language Page Skeleton
MediumHTML
Create a simple page structure that shows content in two languages with proper lang attributes.
Example:
Input: Same paragraph in EN + another language
Output: Two clearly separated language sections
Center a Card Using Flexbox
EasyCSS
Center a card both vertically and horizontally on the page using Flexbox.
Example:
Input: One card
Output: Screen-centered card
Build a 3-Column Flexbox Layout
EasyCSS
Create a 3-column responsive layout using Flexbox.
Example:
Input: 3 content columns
Output: Equal width layout that stacks on mobile
Create a Responsive Navigation Header
MediumCSS
Build a top navbar that collapses into a hamburger menu on small screens (no JS logic required).
Example:
Input: Desktop nav becomes a menu icon
Output: Responsive navbar
Design a Hero Section with Background Image
EasyCSS
Build a hero banner with background image, title, subtitle, and a call-to-action button.
Example:
Input: Hero with CTA
Output: Center-aligned text over image
Style a Login Form
EasyCSS
Style a login form with proper spacing, inputs and button styles.
Example:
Input: Email + Password + Button
Output: Clean styled form
Create Card Hover Elevation Effect
EasyCSS
Create a card that lifts with a shadow on hover.
Example:
Input: UI card
Output: Hover effect
Make Image Hover Zoom Effect
MediumCSS
Zoom image slightly on hover with smooth transition.
Example:
Input: Photo gallery
Output: Zoom on hover
Build a Responsive Image Grid
EasyCSS
Create an image grid layout that adjusts column count based on screen width.
Example:
Input: 6 images
Output: Responsive gallery
Create a Fullscreen Split-Screen Layout
MediumCSS
Divide a full screen into two equal vertical halves with distinct content.
Create a Glassmorphism Card
MediumCSS
Build a card with frosted glass effect using backdrop-filter.
Create a Pure CSS Tooltip
MediumCSS
Show a tooltip on hover using only CSS pseudo-elements.
Create a CSS-Only Dropdown
MediumCSS
Show/hide dropdown content on hover using pure CSS.
Build an Animated Loading Spinner
EasyCSS
Create a circular loading spinner animation using @keyframes.
Make a Timeline UI
MediumCSS
Build a vertical timeline UI using pseudo-elements.
Build a Testimonial Card Section
EasyCSS
Build a testimonial section with avatar, comment, and name.
Create a Pricing Grid with Highlighted Plan
MediumCSS
Highlight one plan visually using a different background or border.
Style a Product Card with Price Tag
MediumCSS
Include product image, title, price badge and button.
Create a Badge / Chip UI
EasyCSS
Build tag-style UI used for categories or labels.
Build a Sidebar + Content Dashboard Layout
MediumCSS
Create a dashboard layout with fixed sidebar and scrollable main content.
Build a CSS Grid Dashboard
MediumCSS
Create grid cards layout like analytics dashboard
Reverse a String
EasyJavaScript
Given a string, return a new string with the characters in reverse order.
Example:
Input: "hello"
Output: "olleh"
Check if String is Palindrome
EasyJavaScript
Check whether a given string reads the same forwards and backwards. Ignore case and non-alphanumeric characters.
Example:
Input: "madam"
Output: true
Find Maximum in an Array
EasyJavaScript
Return the maximum number from a given non-empty array of numbers.
Example:
Input: [1, 5, 3, 9, 2]
Output: 9
Remove Duplicates from Array
EasyJavaScript
Given an array, return a new array with all duplicate values removed.
Example:
Input: [1, 1, 2, 3, 3]
Output: [1, 2, 3]
Count Vowels in a String
EasyJavaScript
Count the number of vowels (a, e, i, o, u) present in a given string.
Example:
Input: "happy"
Output: 1
Implement FizzBuzz
EasyJavaScript
Print numbers from 1 to n. For multiples of 3 print 'Fizz', for multiples of 5 print 'Buzz', and for multiples of both print 'FizzBuzz'.
Example:
Input: 5
Output: "1, 2, Fizz, 4, Buzz"
Sum of Array Elements
EasyJavaScript
Return the sum of all numbers in an array.
Example:
Input: [1, 2, 3, 4]
Output: 10
Factorial of a Number
EasyJavaScript
Given a non-negative integer n, return n! (n factorial).
Example:
Input: 5
Output: 120
Generate Fibonacci Sequence
MediumJavaScript
Return an array containing the first n numbers of the Fibonacci sequence.
Example:
Input: 5
Output: [0, 1, 1, 2, 3]
Find First Non-Repeating Character
MediumJavaScript
Given a string, return the first character that does not repeat. If none exists, return null.
Example:
Input: "aabbcde"
Output: "c"
Check if Two Strings Are Anagrams
MediumJavaScript
Check if two given strings are anagrams of each other (same characters with same frequency).
Example:
Input: "listen", "silent"
Output: true
Flatten a Nested Array (One Level)
MediumJavaScript
Given an array that may contain nested arrays one level deep, return a new flattened array.
Example:
Input: [1, [2, 3], 4, [5]]
Output: [1, 2, 3, 4, 5]
Find Intersection of Two Arrays
MediumJavaScript
Return an array containing the unique intersection of two arrays (values present in both).
Example:
Input: [1,2,2,3], [2,3,4]
Output: [2,3]
Convert String to Title Case
EasyJavaScript
Convert a sentence so that the first letter of each word is uppercase and the rest are lowercase.
Example:
Input: "hello world from codewithhappy"
Output: "Hello World From Codewithhappy"
Find the Longest Word in a Sentence
EasyJavaScript
Given a sentence, return the longest word. If there are multiple, return any one.
Example:
Input: "I love JavaScript"
Output: "JavaScript"
Implement a Debounce Function
MediumJavaScript
Implement a debounce function that delays invoking a callback until after a certain wait time has elapsed since the last call.
Example:
Input: debounce(fn, 300)
Output: fn runs only once after user stops triggering for 300ms
Implement a Throttle Function
MediumJavaScript
Implement a throttle function that ensures a callback is called at most once in a given interval.
Example:
Input: throttle(fn, 500)
Output: fn can execute at most every 500ms
Implement Custom Array.map
MediumJavaScript
Implement a custom map function called myMap that works similarly to Array.prototype.map.
Example:
Input: [1,2,3].myMap(x => x * 2)
Output: [2,4,6]
Implement Custom Array.filter
MediumJavaScript
Implement a custom filter function called myFilter that works similarly to Array.prototype.filter.
Example:
Input: [1,2,3,4].myFilter(x => x % 2 === 0)
Output: [2,4]
Implement a Simple Event Emitter
MediumJavaScript
Implement a simple EventEmitter with on, off and emit methods to subscribe and trigger events.
Example:
Input: em.on("data", fn); em.emit("data", 123);
Output: fn called with 123
Define a Basic User Type
EasyTypeScript
Create a User type with id, name, email, and isAdmin fields and use it to type a user object.
Example:
Input: User with id, name, email, isAdmin
Output: Well-typed user object
Make Some User Fields Optional
EasyTypeScript
Extend the User type so that 'isAdmin' and 'phone' fields are optional.
Example:
Input: User with no phone or isAdmin
Output: Valid typed user object
Create a Readonly User Type
EasyTypeScript
Create a ReadonlyUser type in which all properties from User are readonly.
Example:
Input: Try reassigning user.id
Output: Type error
Make a Partial User Update Type
EasyTypeScript
Create a UserUpdate type where all User fields are optional using Partial.
Example:
Input: { email?: string }
Output: Valid UserUpdate
Combine Readonly and Partial for User
MediumTypeScript
Create a type that is both Partial and Readonly version of User.
Example:
Input: Read-only partial update
Output: Cannot reassign, all fields optional
Create a Union Type for Button Variant
EasyTypeScript
Define a ButtonVariant type that only allows 'primary', 'secondary', or 'ghost'.
Example:
Input: "primary"
Output: Valid
Create a Discriminated Union for API Status
MediumTypeScript
Create a discriminated union type representing loading, success, and error states of an API request.
Example:
Input: status: 'success', data: T
Output: Valid success state
Write a Generic Identity Function
EasyTypeScript
Implement a generic identity function that returns whatever value it receives with the correct type.
Example:
Input: identity<string>('hello')
Output: string
Create a Generic Array Wrapper Type
EasyTypeScript
Define a generic type that wraps any type T as an array of T.
Example:
Input: List<string>
Output: string[]
Define a Generic API Result Type
MediumTypeScript
Create a generic ApiResult<T> type that has success, data, and optional error message.
Example:
Input: ApiResult<User[]>
Output: Typed response for array of users
Use Pick to Select Specific Fields
EasyTypeScript
Create a PublicUser type that only has 'id' and 'name' from User.
Example:
Input: PublicUser
Output: { id: number; name: string }
Use Omit to Hide Sensitive Fields
EasyTypeScript
Create a SafeUser type that removes 'password' and 'token' from the User type.
Example:
Input: SafeUser
Output: User without password and token
Use Record to Map Strings to Numbers
EasyTypeScript
Create a type alias ScoreMap that maps string keys to number values using Record.
Example:
Input: ScoreMap
Output: { [key: string]: number }
Define a Function Type for Async API Call
MediumTypeScript
Define a type alias ApiCaller that represents a function returning a Promise of generic type T.
Example:
Input: ApiCaller<User[]>
Output: () => Promise<User[]>
Create a Discriminated Shape Union
MediumTypeScript
Create a Shape union type for 'circle' and 'rectangle', each with appropriate fields.
Example:
Input: Shape
Output: Circle or Rectangle with strong typing
Write a Function to Compute Shape Area
MediumTypeScript
Using the Shape type, implement a function that returns the area of either a circle or a rectangle.
Example:
Input: { kind: "circle", radius: 2 }
Output: 12.566...
Use keyof to Get Object Keys Type
MediumTypeScript
Create a function that takes an object and a key (restricted to the object's keys) and returns the value.
Example:
Input: getProp(user, 'name')
Output: string
Create a Readonly Array Type
EasyTypeScript
Define a type ReadonlyStringList that is a readonly array of strings.
Example:
Input: push on ReadonlyStringList
Output: Type error
Add Types to a Fetch Wrapper Function
MediumTypeScript
Write a generic fetchJson<T> function that fetches a URL and returns Promise<T>.
Example:
Input: fetchJson<User[]>('/api/users')
Output: Promise<User[]>
Type React Component Props with TypeScript
MediumTypeScriptReact
Define a Props type for a Button component with label (string), onClick (function), and optional variant.
Example:
Input: <Button label='Save' onClick={...} />
Output: Type-safe props
Build a Counter Component
EasyReactJavaScript
Create a counter with + and - buttons and show the current value.
Example:
Input: Click + three times
Output: Counter shows 3
Create a Todo List with Add & Toggle
EasyReactJavaScript
Build a todo list where users can add items and mark them as completed.
Example:
Input: Add 'Learn React', click it
Output: Todo appears and toggles completed style
Filter a List with Search Input
EasyReactJavaScript
Create a search box that filters a list of items in real-time.
Example:
Input: Type 'js' in search
Output: Only items containing 'js' shown
Create a Tabs Component
MediumReactJavaScript
Build a Tabs component that switches visible content when a tab is clicked.
Example:
Input: Click 'Profile' tab
Output: Profile content visible
Build an Accordion Component
MediumReactJavaScript
Create an accordion with multiple sections where clicking a header toggles its content.
Example:
Input: Click a question
Output: Answer toggles open/closed
Create a Modal Dialog
MediumReactJavaScript
Build a modal dialog that opens on button click and closes via close button or backdrop click.
Example:
Input: Click 'Open Modal'
Output: Overlay and dialog appear
Implement Dark/Light Theme Toggle
MediumReactJavaScript
Create a toggle that switches between dark and light theme and applies a class to the body.
Example:
Input: Toggle theme
Output: Body class toggles between light and dark
Build a Custom useLocalStorage Hook
MediumReactJavaScript
Create a custom hook useLocalStorage that syncs state with localStorage.
Example:
Input: useLocalStorage("theme", "light")
Output: Persists theme across refresh
Create a Debounced Search Input
MediumReactJavaScript
Implement a search input that only triggers filter/API logic after the user stops typing for some time.
Example:
Input: Type quickly 'react'
Output: Search only fires once after typing stops
Fetch Data with Loading & Error States
MediumReactJavaScript
Build a component that fetches data from an API and shows loading, error, or data UI.
Example:
Input: Component mounts
Output: Shows loading then data or error
Build a Pagination Component
MediumReactJavaScript
Create a simple pagination component that lets you navigate through pages of items.
Example:
Input: 50 items, pageSize 10
Output: 5 pages with navigation controls
Create a Multi-Step Form (Stepper)
MediumReactJavaScript
Build a multi-step form with next/previous buttons and a final review step.
Example:
Input: 3 steps: personal, address, review
Output: Stepper with navigation
Build a Toast / Notification System
MediumReactJavaScript
Create a simple toast system where messages appear at the corner and disappear after a timeout.
Example:
Input: Click 'Show Toast'
Output: Toast appears and fades after a few seconds
Create a Tag Input Component
MediumReactJavaScript
Build an input where user can type a value and press Enter to create a tag, with ability to remove tags.
Example:
Input: Type "React" + Enter
Output: Tag 'React' appears
Implement Infinite Scroll for a List
MediumReactJavaScript
Load more items when the user scrolls near the bottom of the list.
Example:
Input: Scroll down
Output: More items auto-append
Build a File Upload Preview (No Backend)
MediumReactJavaScript
Create a file input that shows a preview of an image file selected by the user.
Example:
Input: Select image file
Output: Preview image displayed
Create a Star Rating Component
MediumReactJavaScript
Build a 1–5 star rating component that allows user to select a rating.
Example:
Input: Click 4th star
Output: Rating set to 4
Build a Simple Kanban Board
MediumReactJavaScript
Create a Kanban board with three columns: Todo, In Progress, Done. Allow moving tasks between columns.
Example:
Input: Move task from Todo to Done
Output: Status updated, appears in Done column
Build a Responsive Navbar with Active Link
EasyReactJavaScript
Create a navbar with multiple links and highlight the active one based on current state.
Example:
Input: Click 'Projects'
Output: 'Projects' looks active
Build a Simple Form with Validation Messages
MediumReactJavaScript
Create a signup form with name, email and password, showing simple validation messages before submit.
Example:
Input: Empty email
Output: Shows 'Email is required'
Create a Basic Next.js Page
EasyNext.jsReactJavaScript
Create a simple Next.js page that renders a heading and a short description.
Example:
Input: /about
Output: About page renders with heading
Create a Shared Layout Component
EasyNext.jsReactJavaScript
Create a layout component that wraps pages with a navbar and footer.
Example:
Input: Wrap /about & /contact
Output: Both share same navbar/footer
Set Up a Root Layout in App Router
EasyNext.jsReactJavaScript
Create a root layout in the app directory with shared HTML structure and metadata.
Example:
Input: app/layout.tsx
Output: All pages share same shell
Create Static Routes for Blog List & Detail
MediumNext.jsReactJavaScript
Create a /blog page that lists posts and a dynamic [slug] route that shows blog details.
Example:
Input: /blog/hello-next
Output: Shows 'hello-next' post
Read Dynamic Route Params (App Router)
MediumNext.jsReactJavaScript
Use dynamic route segments and read params in a page component.
Example:
Input: /products/laptop
Output: Slug is 'laptop'
Pre-generate Dynamic Routes with generateStaticParams
MediumNext.jsReactJavaScript
Use generateStaticParams to statically generate multiple dynamic pages at build time.
Example:
Input: 3 products
Output: 3 statically generated pages
Add Static Metadata to a Page
EasyNext.jsReactJavaScript
Add static title and description metadata for a page using the metadata export.
Example:
Input: Page /resources
Output: Custom tab title
Generate Dynamic Metadata per Page
MediumNext.jsReactJavaScript
Use generateMetadata to set page title and description based on dynamic route params.
Example:
Input: /blog/next-routing
Output: Title 'Blog - next-routing'
Create API Route for JSON Data
EasyNext.jsNode.jsJavaScript
Create a basic API route that returns a JSON response.
Example:
Input: /api/status
Output: { ok: true }
Create Dynamic API Route
MediumNext.jsNode.jsJavaScript
Build a dynamic API route that reads an id from the URL and returns fake data.
Example:
Input: /api/users/123
Output: { id: '123' }
Use Server Components to Fetch Data
MediumNext.jsReactJavaScript
Create a server component that fetches data on the server and passes it to the client.
Example:
Input: /users
Output: Initial HTML already contains user data
Convert Component to Client Component
EasyNext.jsReactJavaScript
Turn a component into a client component to allow hooks like useState and useEffect.
Example:
Input: add counter to server page
Output: mark child as client
Create a Loading State with loading.tsx
EasyNext.jsReactJavaScript
Add a loading.tsx file to show a loading UI while a route segment is fetching data.
Example:
Input: navigate to /users
Output: Loading UI before data appears
Handle Errors with error.tsx
MediumNext.jsReactJavaScript
Add an error.tsx file to handle rendering when a route throws an error.
Example:
Input: fetch fails
Output: Error UI with retry button
Create a Catch-All Route
MediumNext.jsReactJavaScript
Create a catch-all route that matches any nested path segments and prints them.
Example:
Input: /docs/guide/getting-started
Output: ['docs','guide','getting-started']
Create an Optional Catch-All Route
MediumNext.jsReactJavaScript
Create an optional catch-all route that works both with and without additional segments.
Example:
Input: /docs
Output: base view
Use Middleware for Simple Auth Redirect
MediumNext.jsJavaScript
Use middleware.ts to protect a dashboard route and redirect to login if no cookie is set.
Example:
Input: visit /dashboard without auth cookie
Output: redirect to /login
Create a Simple Sitemap Route
MediumNext.jsJavaScript
Create a route that returns a simple XML sitemap listing a few URLs.
Example:
Input: /sitemap.xml
Output: XML response
Create a robots.txt Route
EasyNext.jsJavaScript
Create a route that returns a robots.txt response for your site.
Example:
Input: /robots.txt
Output: User-agent: *
Create a Resources Page from Local Data
MediumNext.jsReactJavaScript
Import a local JSON or JS data file and render a resources list in a Next.js page.
Example:
Input: 5 resource items
Output: Resources page lists all items
Create a Basic HTTP Server (No Express)
EasyNode.js
Create a basic HTTP server using Node's built-in http module that responds with plain text.
Example:
Input: GET /
Output: Hello from Node server
Build a CLI Tool to Count Words in a File
MediumNode.js
Create a Node CLI script that takes a file path from command line arguments and prints the word count.
Example:
Input: node wc.js notes.txt
Output: Words: 120
Read & Write JSON File
EasyNode.js
Read a JSON file, update a field, and write it back to disk.
Example:
Input: config.json with {"visits": 1}
Output: Updated to {"visits": 2}
Log System Information to Console
EasyNode.js
Write a script that logs OS platform, total memory, free memory, and CPU count.
Example:
Input: node sysinfo.js
Output: Platform: win32, CPUs: 8, ...
Create a Simple Logger Module
MediumNode.js
Create a logger module that logs messages with timestamps and levels (info, warn, error).
Example:
Input: logger.info("Server started")
Output: [INFO] 2025-01-01T... Server started
Create a Countdown Timer Script
EasyNode.js
Create a CLI script that counts down from N seconds to 0 and logs each second.
Example:
Input: node timer.js 5
Output: 5 4 3 2 1 0
Parse CLI Arguments into an Object
MediumNode.js
Build a simple command-line arguments parser that supports flags like --port=3000 --mode=dev.
Example:
Input: node app.js --port=3000 --mode=dev
Output: { port: '3000', mode: 'dev' }
Read Environment Variables Safely
EasyNode.js
Create a small config helper that reads required environment variables and throws error if missing.
Example:
Input: getEnv('PORT')
Output: Returns port or throws
Implement a Simple EventEmitter
MediumNode.js
Implement a minimal EventEmitter class with on, off, and emit methods (without using built-in events module).
Example:
Input: em.on("data", fn); em.emit("data", 123);
Output: fn called with 123
Rename All Files in a Folder with Prefix
MediumNode.js
Write a script that adds a prefix to all file names in a given folder.
Example:
Input: node rename.js ./images img_
Output: image1.png -> img_image1.png
Build a Simple Todo CLI (JSON Storage)
MediumNode.js
Create a todo CLI where you can add and list todos stored in a JSON file.
Example:
Input: node todo.js add "Learn Node"
Output: Added: Learn Node
Design URL Shortener Core Logic
MediumNode.js
Implement the in-memory logic for a URL shortener: createShortUrl(longUrl) and getLongUrl(shortCode).
Example:
Input: createShortUrl('https://example.com')
Output: abc123
Implement In-Memory Rate Limiter
MediumNode.js
Implement a basic in-memory rate limiter that allows only N requests per IP in a time window.
Example:
Input: 5 requests within 1 minute
Output: Allowed, then blocked
Schedule a Repeating Task
EasyNode.js
Create a script that logs a heartbeat message every minute, and stops after 5 runs.
Example:
Input: run script
Output: Heartbeat #1 ... Heartbeat #5 then exit
Create a Simple File Backup Script
MediumNode.js
Write a script that copies all files from a source directory to a backup directory with a timestamped folder.
Example:
Input: node backup.js ./data
Output: ./backups/2025-01-01T.../file1.json
Validate JSON and Print Errors
MediumNode.js
Create a script that tries to parse a JSON file and reports whether it is valid or prints the parse error.
Example:
Input: node validate.js broken.json
Output: Invalid JSON: Unexpected token ...
Implement a Simple Task Queue
MediumNode.js
Implement a simple in-memory queue that processes async tasks one by one.
Example:
Input: addTask(async () => wait 1s)
Output: Tasks run sequentially
Convert Markdown File to HTML
MediumNode.js
Build a script that reads a markdown (.md) file and outputs HTML (you may assume a simple library like marked is available).
Example:
Input: node md2html.js README.md
Output: README.html created
Wrap Fetch with Retry Logic in Node
MediumNode.js
Implement a fetchWithRetry(url, options, maxRetries) helper that retries on network errors or 5xx responses.
Example:
Input: fetchWithRetry('https://api', {}, 3)
Output: Attempts up to 3 times
Implement a Config Loader with Defaults
MediumNode.js
Create a config loader that merges default config, JSON file config, and environment variables (env has highest priority).
Example:
Input: PORT default 3000, env PORT=5000
Output: Final port 5000
Create Basic Express Server
EasyExpress.jsNode.js
Set up a basic Express server with a single GET / route that returns a JSON welcome message.
Example:
Input: GET /
Output: { "message": "Welcome to Express API" }
Create JSON CRUD Endpoints for In-Memory Items
MediumExpress.jsNode.js
Build /items endpoints: GET all, GET by id, POST create, PUT update, DELETE remove using an in-memory array.
Example:
Input: POST /items {name:'Pen'}
Output: 201 + created item with id
Add Centralized Request Logging Middleware
EasyExpress.jsNode.js
Create a custom middleware that logs method, URL, and response time for each request.
Example:
Input: GET /items
Output: LOG: GET /items 200 - 15ms
Implement Centralized Error Handling Middleware
MediumExpress.jsNode.js
Add an error-handling middleware that catches thrown errors and returns a standardized JSON error response.
Example:
Input: Route throws error
Output: { "error": "Something failed" }
Create Async Wrapper for Express Route Handlers
MediumExpress.jsNode.js
Create a helper function wrapAsync that wraps async route handlers and forwards errors to next.
Example:
Input: app.get('/users', wrapAsync(async..))
Output: Errors go to error handler
Add Basic Request Validation Middleware
MediumExpress.jsNode.js
Create a middleware validateCreateItem that ensures POST /items has a non-empty 'name' field.
Example:
Input: POST /items {}
Output: 400 { "error": "name is required" }
Implement Simple API Key Authentication
MediumExpress.jsNode.js
Create middleware that checks for an API key in headers (x-api-key) and rejects requests if it's missing or incorrect.
Example:
Input: No x-api-key header
Output: 401 Unauthorized
Add JWT Authentication Middleware
MediumExpress.jsNode.js
Add middleware that verifies a JWT from Authorization: Bearer <token>, decodes user, and attaches it to req.user.
Example:
Input: GET /me with valid token
Output: { id, email }
Implement Pagination on a List Endpoint
MediumExpress.jsNode.js
Add pagination support to GET /items using query params page and limit.
Example:
Input: GET /items?page=2&limit=5
Output: 5 items from index 5–9
Filter & Search Items via Query Params
MediumExpress.jsNode.js
Enhance GET /items to support search by name (?q=) and filter by minPrice/maxPrice query params.
Example:
Input: GET /items?q=pen
Output: Only items with 'pen' in name
Create Versioned API Routes (/api/v1, /api/v2)
MediumExpress.jsNode.js
Organize routes into versioned routers for /api/v1 and /api/v2, each returning slightly different responses.
Example:
Input: GET /api/v1/status
Output: { version: 'v1' }
Serve Static Files from Public Folder
EasyExpress.jsNode.js
Configure Express to serve static files like images, CSS, and client-side JS from a /public directory.
Example:
Input: GET /static/logo.png
Output: Serves /public/logo.png
Add CORS Support to API
EasyExpress.jsNode.js
Enable CORS for your API so it can be consumed from a different origin (e.g., React frontend).
Example:
Input: Browser fetch from different origin
Output: No CORS error
Handle 404 Not Found for Unknown Routes
EasyExpress.jsNode.js
Add a catch-all middleware that returns a JSON 404 error for unknown routes.
Example:
Input: GET /unknown
Output: 404 { error: 'Not found' }
Implement Request Rate Limiting Middleware
MediumExpress.jsNode.js
Create simple in-memory rate-limiting middleware limiting each IP to N requests per minute.
Example:
Input: 20 requests in a minute with limit=10
Output: First 10 OK, then 429
Group Routes Using Express Router
EasyExpress.jsNode.js
Move /items routes into a separate router module and mount it under /api/items.
Example:
Input: GET /api/items
Output: Handled by router
Add Health Check & Metrics Endpoint
MediumExpress.jsNode.js
Add GET /health and GET /metrics endpoints for monitoring status and basic stats (uptime, request count).
Example:
Input: GET /metrics
Output: { uptime: 123.4, requests: 42 }
Implement File Upload Endpoint (multer)
MediumExpress.jsNode.js
Create a POST /upload endpoint that accepts a single file field 'file' and stores it in an uploads/ folder.
Example:
Input: POST /upload with image
Output: { originalName, filename }
Implement Soft Delete vs Hard Delete
MediumExpress.jsNode.js
Implement DELETE /items/:id as soft delete (mark isDeleted) and add /admin/items endpoint to include deleted ones.
Example:
Input: DELETE /items/1
Output: Item marked isDeleted=true
Document API with OpenAPI/Swagger JSON
MediumExpress.jsNode.js
Expose a /openapi.json endpoint that returns a basic OpenAPI specification for your items API.
Example:
Input: GET /openapi.json
Output: JSON schema describing /items
Design Basic User Collection Schema
EasyMongoDBNode.js
Design a basic user document structure for MongoDB including name, email, passwordHash, roles, createdAt.
Example:
Input: User signup
Output: { name, email, passwordHash, roles: ['user'], createdAt }
Insert Multiple Users into Collection
EasyMongoDB
Insert multiple user documents into a users collection in a single operation.
Example:
Input: 3 user objects
Output: Acknowledged insert with insertedIds
Find Users by Role
EasyMongoDB
Query all users that have 'admin' in their roles array.
Example:
Input: role = admin
Output: List of admin users
Use Projection to Limit Returned Fields
EasyMongoDB
Query users but return only name and email, excluding _id if needed.
Example:
Input: Find all users
Output: { name, email } only
Ensure Unique Index on Email
MediumMongoDB
Create a unique index on the email field of users collection so duplicate emails are not allowed.
Example:
Input: insert user with existing email
Output: Duplicate key error
Create Text Search Index on Article Title & Body
MediumMongoDB
Create a text index on articles collection covering title and body, then run a search query.
Example:
Input: query: 'mongodb indexing'
Output: Articles that match those words
Use Text Score for Sorting Search Results
MediumMongoDB
Perform a text search on articles and sort results by relevance score.
Example:
Input: search 'node mongodb'
Output: Most relevant article first
Find Users Registered in Last N Days
MediumMongoDB
Query users whose createdAt is within the last 7 days.
Example:
Input: N = 7 days
Output: List of recent signups
Aggregate User Signups Per Day
MediumMongoDB
Use aggregation pipeline to count number of users registered per day.
Example:
Input: users collection
Output: [{ _id:'2025-01-01', count:10 }, ...]
Store Embedded Address in User Document
EasyMongoDB
Add an embedded address object inside user documents instead of separate collection.
Example:
Input: User with address
Output: { name, email, address: { city, country } }
Reference Author from Post Document
MediumMongoDB
Design blog posts collection where each post stores a reference (userId) to the author in users collection.
Example:
Input: New post
Output: { title, body, userId:ObjectId, createdAt }
Join Posts with Author Details Using $lookup
MediumMongoDB
Use aggregation pipeline with $lookup to fetch posts along with author name and email from users.
Example:
Input: posts + users
Output: { title, body, author: { name, email } }
Add Pagination to MongoDB Query
MediumMongoDB
Implement pagination using skip and limit for a products collection.
Example:
Input: page=2, limit=10
Output: Documents 11–20
Use Compound Index for Query Optimization
MediumMongoDB
Create a compound index on products price and category to speed up queries filtering both.
Example:
Input: find { category:'books', price: { $gt: 500 } }
Output: Uses compound index
Update Nested Field in Embedded Document
MediumMongoDB
Update a user's address.city field without replacing the entire address object.
Example:
Input: user email = a@b.com
Output: address.city updated
Increment a Counter Field Atomically
EasyMongoDB
Increment a product's views count by 1 every time it is viewed.
Example:
Input: view product
Output: views: previous+1
Track Page Views Per Day per Article
MediumMongoDB
Design a schema & update pattern to track number of views per day for each article.
Example:
Input: view article X on date D
Output: count for that date increments
Use $in and $or to Filter Products
EasyMongoDB
Query products that are either in categories ['laptop', 'mobile'] OR have price less than 5000.
Example:
Input: categories = laptop/mobile, price < 5000
Output: All matching products
Implement Soft Delete for Documents
MediumMongoDB
Mark a document as deleted using isDeleted flag instead of physically removing it, and update queries to ignore deleted docs.
Example:
Input: soft delete user
Output: isDeleted:true but user still in DB
Model One-to-Many Comments for a Post
MediumMongoDB
Design how to store comments for posts: either embedded array of comments or separate comments collection with postId, and explain tradeoffs.
Example:
Input: post with 3 comments
Output: Either embedded or referenced structure
Select All Columns from a Table
EasySQL
Write a SQL query to select all columns from the users table.
Example:
Input: users table
Output: All rows with all columns
Select Specific Columns with WHERE Filter
EasySQL
Select only name and email from users table where is_active = true.
Example:
Input: users where is_active = 1
Output: name, email only
Filter Using Multiple Conditions (AND/OR)
EasySQL
Write a query to fetch users who are active AND from country = 'India', OR have role = 'admin'.
Example:
Input: active + India, plus all admins
Output: Filtered list of users
Search Using LIKE and Wildcards
EasySQL
Write a query to find all users whose name starts with 'Ha' and email contains 'gmail'.
Example:
Input: pattern Ha% and %gmail%
Output: Matching users
Sort & Limit Results
EasySQL
Select the 10 most recently created users ordered by created_at descending.
Example:
Input: users table
Output: Latest 10 users
Aggregate: Count Users Per Country
EasySQL
Write a query to count how many users are there in each country.
Example:
Input: users
Output: { country:'India', user_count:120 } etc.
Use HAVING to Filter Aggregated Results
MediumSQL
Count users per country but only show countries having more than 100 users.
Example:
Input: users per country > 100
Output: Filtered list of countries
Inner Join Users with Orders
MediumSQL
Write a query to list each order with the user's name and email who placed the order.
Example:
Input: orders + users
Output: order_id, user_name, user_email
Left Join to Include Users Without Orders
MediumSQL
List all users and their total order_count, including users who have never placed an order.
Example:
Input: users + orders
Output: { user, order_count } (including zeros)
Calculate Total Revenue Per User
MediumSQL
Using users and orders tables, compute total revenue per user and show only users with revenue > 1000.
Example:
Input: orders + users
Output: { user_id, total_revenue > 1000 }
Find Users Who Never Placed an Order
MediumSQL
Write a query to find all users that have no orders in orders table.
Example:
Input: users and orders
Output: users without any orders
Use Subquery to Filter by Aggregate
MediumSQL
Select all orders whose total_amount is greater than the average order total for all orders.
Example:
Input: orders table
Output: Orders above average value
Use Window Function for Running Total
MediumSQL
For each user's orders, compute a running total (cumulative sum) of total_amount ordered by created_at.
Example:
Input: user orders
Output: Each row has running_total column
Add Primary Key & Not Null Constraints
EasySQL
Write a CREATE TABLE statement for users with id primary key, email NOT NULL and UNIQUE, created_at NOT NULL.
Example:
Input: users
Output: table with strong constraints
Normalize Orders & Order Items
MediumSQL
Design relational schema for orders and order_items tables to avoid data duplication and support multiple items per order.
Example:
Input: order with 3 products
Output: 1 row in orders, 3 in order_items
Update Records Safely with WHERE
EasySQL
Write an UPDATE query to set is_active = 0 for users who haven't logged in since 1 year ago.
Example:
Input: last_login < '2024-01-01'
Output: Those users become inactive
Delete Records with Condition
EasySQL
Delete all rows from password_reset_tokens table where created_at is older than 30 days.
Example:
Input: tokens older than 30 days
Output: Cleaned up tokens
Calculate Daily Revenue from Orders
MediumSQL
Group orders by date and calculate total revenue per day, sorted by date ascending.
Example:
Input: orders table
Output: { day:'2025-01-01', revenue:12345.67 }
Find Top N Products by Sales
MediumSQL
Using order_items and products, find top 5 products by total revenue (quantity * price).
Example:
Input: order_items + products
Output: Top 5 products
Wrap Multiple Statements in a Transaction
MediumSQL
Demonstrate how to transfer money between two accounts: deduct from one, add to another, safely inside a transaction.
Example:
Input: transfer 500 from A to B
Output: Either both balances updated or none
Create a Centered Card with Tailwind
EasyTailwind CSS
Make a card centered vertically & horizontally with padding, rounded corners, and drop shadow.
Example:
Input: Card layout
Output: Centered card with content visible
Build a Responsive Grid Gallery
EasyTailwind CSS
Create an image gallery using responsive grid columns (2 → 3 → 4 on larger screens).
Example:
Input: 6 images
Output: Responsive gallery layout
Create a Modern Button Style
EasyTailwind CSS
Style a primary button with hover transition, rounded-full, and focus ring.
Example:
Input: button
Output: Smooth interaction states
Create Sticky Navbar with Blur
MediumTailwind CSS
Build a sticky top navbar with backdrop blur and shadow on scroll.
Example:
Input: scroll page
Output: Navbar stays at top with blur
Create a Full Responsive Hero Section
MediumTailwind CSS
Hero with big heading, supporting text, CTA buttons & image — mobile first.
Example:
Input: Hero block
Output: Responsive split hero
Dark/Light Mode Using Tailwind Classes
MediumTailwind CSS
Use Tailwind's dark: modifier to support light/dark UI switch.
Example:
Input: toggle theme
Output: UI flips theme
Create Mobile Menu Slide Panel
MediumTailwind CSS
Mobile hamburger menu that reveals sidebar panel with animation.
Example:
Input: hamburger click
Output: Slide panel open/close
Create Pricing Table with Highlighted Plan
MediumTailwind CSS
Three pricing cards where middle one visually highlighted.
Example:
Input: pricing grid
Output: Professional layout
Create Notification Toast Alert
MediumTailwind CSS
Create sliding toast message top-right with fade animations.
Example:
Input: notify()
Output: Toast slides in/out
Animate Hover Scale on Cards
EasyTailwind CSS
Cards scale up slightly on hover for visual feedback.
Example:
Input: hover card
Output: Smooth scale animation
Hover Overlay on Image Cards
MediumTailwind CSS
Image darkens with text appearing centered on hover.
Example:
Input: hover
Output: Overlay visible
Form UI: Stylish Inputs + Error Message
MediumTailwind CSS
Styled input with focus ring and error state under it.
Example:
Input: validation
Output: Error appears
Avatar with Status Indicator
EasyTailwind CSS
Circular avatar image with a green dot for online presence.
Example:
Input: user online
Output: Avatar + green ping
Build Dashboard Stats Cards
MediumTailwind CSS
4 responsive stat cards in grid with icons & growth badges.
Example:
Input: cards
Output: Admin dashboard metrics
Glassmorphism UI Card
MediumTailwind CSS
Glass effect card with backdrop blur and soft border light.
Example:
Input: frosted background
Output: Glass UI look
Animated Skeleton Loader
MediumTailwind CSS
Grey placeholder skeleton shimmer animation for loading cards.
Example:
Input: loading card
Output: Pulse animation
Tooltip on Hover
EasyTailwind CSS
Show hidden text bubble above icon on hover.
Example:
Input: hover info
Output: Tooltip visible
Responsive 2-Column Blog Layout
MediumTailwind CSS
Main content + sidebar layout that stacks vertically on mobile.
Example:
Input: page layout
Output: Perfect blog UI
Tabs UI Switching (No JS for Layout)
MediumTailwind CSS
Horizontal tabs with active styling; content panel hidden via tailwind utilities toggled by JS.
Example:
Input: tab click
Output: UI switches
Create Footer with Social Icons
EasyTailwind CSS
Fixed footer with 3–4 social links styled as icon-only buttons.
Example:
Input: footer icons
Output: Clean footer UI
Setup Basic Bootstrap Page
EasyBootstrap
Create a basic HTML page that correctly includes Bootstrap CSS and JS and shows a 'Hello Bootstrap' heading.
Example:
Input: open index.html
Output: Properly styled heading
Create Two-Column Responsive Layout
EasyBootstrap
Create a layout where on mobile content stacks, and on md+ screens it becomes 2 equal columns.
Example:
Input: mobile view
Output: single column
Build Three Card Layout with Equal Height
EasyBootstrap
Create a row with 3 cards in columns that are equal height on desktop and stack on mobile.
Example:
Input: 3 features
Output: 3 clean feature cards
Create Navbar with Brand & Nav Links
EasyBootstrap
Build a responsive navbar with brand logo on left and nav links on right that collapse into hamburger on mobile.
Example:
Input: mobile view
Output: collapsed menu
Highlight Active Link in Navbar
EasyBootstrap
Use .active class to highlight the current page link in the navbar and ensure it looks visually different.
Example:
Input: Home page
Output: Home link looks active
Create Dismissible Alert Messages
EasyBootstrap
Create success/error Bootstrap alerts that can be closed (dismissed) by the user.
Example:
Input: click close icon
Output: Alert smoothly disappears
Create Modal with Form Inside
MediumBootstrap
Build a modal that opens from a button, contains a simple login form (email/password), and closes with buttons or backdrop.
Example:
Input: click 'Login' button
Output: Modal with form appears
Build Responsive Table with Striped Rows
EasyBootstrap
Create a table that has striped rows, hover effect, and scrolls horizontally on small screens.
Example:
Input: mobile view
Output: Scrollable table
Create Custom Styled Buttons with Variants
EasyBootstrap
Use Bootstrap button variants like primary, outline, danger, and size (sm/lg) for different actions.
Example:
Input: primary & outline
Output: Different visual hierarchy
Build Responsive Login Form with Validation Styles
MediumBootstrap
Create a centered login card with email/password inputs, using .is-invalid & .invalid-feedback for validation messages.
Example:
Input: invalid email
Output: red border + error text
Create Hero Section Using Bootstrap Utilities
MediumBootstrap
Design a hero with heading, text, CTA button, and illustrative image using grid and spacing utilities.
Example:
Input: desktop
Output: image + text side by side
Use Bootstrap Utility Classes for Spacing & Typography
EasyBootstrap
Refine a section by using margin, padding, font-size, and text color utilities instead of custom CSS.
Example:
Input: raw HTML
Output: cleaner layout using utilities
Implement Tabs Component Using Nav & Tab Content
MediumBootstrap
Create tabbed content using Bootstrap nav tabs and tab-content sections with fade animations.
Example:
Input: click 'Profile' tab
Output: Profile pane visible
Use Carousel for Testimonials
MediumBootstrap
Build a testimonial slider using Bootstrap carousel with indicators and controls.
Example:
Input: click next
Output: show next testimonial
Add Pagination Component for Blog List
EasyBootstrap
Use Bootstrap pagination component to display page numbers with active state and disabled previous/next.
Example:
Input: page 2
Output: 2 active, prev enabled
Create Toast Notifications Using Bootstrap JS
MediumBootstrap
Implement a toast that appears at bottom-right when a button is clicked, using Bootstrap toast component.
Example:
Input: click 'Save'
Output: Toast appears 'Saved successfully'
Use Offcanvas Sidebar for Mobile Navigation
MediumBootstrap
Create an offcanvas sidebar menu that appears from the left when clicking a burger icon.
Example:
Input: click menu icon
Output: Sidebar overlays from left
Create Badge & Pill Styles for Tags
EasyBootstrap
Show tags or category labels using Bootstrap badges and pill style.
Example:
Input: multi tags
Output: pill badges with spacing
Build Simple Dashboard Layout with Sidebar
MediumBootstrap
Create a layout with fixed vertical sidebar (left) and scrollable content area (right) using Bootstrap grid & utilities.
Example:
Input: desktop view
Output: sidebar + content layout
Create Contact Form Section with Responsive Columns
MediumBootstrap
Build a contact section with text on left and form on right; on mobile, they stack vertically.
Example:
Input: desktop
Output: two-column contact section
Initialize Git Repo & First Commit
EasyGit & GitHub
Create a new project folder, initialize a Git repository, add a README.md, and make the first commit.
Example:
Input: git status after commit
Output: nothing to commit, working tree clean
Stage & Unstage Changes Correctly
EasyGit & GitHub
Modify multiple files, then stage only specific ones, unstage one file, and finally commit selectively.
Example:
Input: git status
Output: some files staged, some not
Write Meaningful Commit Messages
EasyGit & GitHub
Follow a simple convention like 'type: short summary' (feat, fix, chore, docs) and write 3 example commits.
Example:
Input: implement login
Output: feat: add basic login form
View & Filter Commit History
EasyGit & GitHub
Use git log with different options to see compact one-line history, graph view, and filter by author.
Example:
Input: git log --oneline -5
Output: last 5 commits in one line
Understand git reflog vs git log
MediumGit & GitHub
Experiment with commit, reset, and checkout, then observe the difference between git log and git reflog.
Example:
Input: git reflog
Output: HEAD@{0}, HEAD@{1} ... history of actions
Undo a Commit Safely (Without Losing Work)
MediumGit & GitHub
Practice undoing last commit using git reset --soft, and git revert for already pushed commits.
Example:
Input: bad commit pushed
Output: use git revert <hash>
Create & Switch Branches
EasyGit & GitHub
Create a new feature branch from main, switch to it, make a commit, then switch back.
Example:
Input: git branch
Output: * feature/navbar and main listed
Merge Feature Branch into Main
MediumGit & GitHub
Create a feature branch, add a commit, then merge it into main and delete the branch.
Example:
Input: git log --oneline --graph
Output: merge visible in history
Resolve a Simple Merge Conflict
MediumGit & GitHub
Intentionally create a merge conflict by editing the same line on two branches, then resolve it and complete the merge.
Example:
Input: git status
Output: both modified: file.js (unmerged paths)
Compare git merge vs git rebase
MediumGit & GitHub
Create two branches, make separate commits, and then once integrate using merge, and another time using rebase to see the difference in history.
Example:
Input: log after merge vs rebase
Output: one has merge node, other is linear
Use .gitignore to Exclude Files
EasyGit & GitHub
Create a .gitignore file to ignore node_modules, build artifacts, and environment files like .env.
Example:
Input: git status
Output: node_modules not listed
Connect Local Repo to GitHub Remote
EasyGit & GitHub
Create an empty repo on GitHub, then add it as a remote, push local main branch, and verify remote is linked.
Example:
Input: git remote -v
Output: origin https://github.com/... (fetch/push)
Clone Existing GitHub Repository
EasyGit & GitHub
Clone a public GitHub repository to your machine and run git commands inside it.
Example:
Input: git clone repo-url
Output: folder created with repo content
GitHub Fork → Branch → PR Workflow
MediumGit & GitHub
Fork an open-source repo on GitHub, clone your fork, create a branch, make a change, push, and open a Pull Request.
Example:
Input: PR view
Output: diff + conversation on GitHub
Sync Your Fork with Upstream Repository
MediumGit & GitHub
Add original repo as upstream remote, fetch changes, and update your main branch to match upstream/main.
Example:
Input: git remote -v
Output: origin + upstream remotes
Use Git Stash to Save WIP Changes
MediumGit & GitHub
Make some changes without committing, stash them, switch branches, then later re-apply the stash.
Example:
Input: git stash list
Output: stash@{0}: On main: message
Tag a Release Version & Push Tags
MediumGit & GitHub
Create an annotated tag for a release (v1.0.0), list tags, and push tags to GitHub.
Example:
Input: git tag
Output: v1.0.0 listed
Blame & Diff to Find Who Broke What
MediumGit & GitHub
Use git blame to see who last changed each line in a file, and git diff to compare versions.
Example:
Input: git blame src/index.js
Output: commit hash + author + line
Create a Simple GitHub Actions CI Workflow
MediumGit & GitHub
Set up a basic GitHub Actions workflow that runs npm test on every push and pull request to main.
Example:
Input: open PR
Output: CI job runs tests automatically
Design a Simple Git Branching Strategy
MediumGit & GitHub
Define a branching strategy using main, develop (optional), and feature/* branches, and document rules for where to commit and how to merge.
Example:
Input: team onboarding
Output: they follow clear branching rules
MERN User Authentication System
MediumFullstackReactNode.jsExpress.jsMongoDBAPI / REST
Create signup + login + logout + protected routes using JWT and hashed passwords.
Example:
Input: invalid token
Output: 401 Unauthorized
Refresh Token Authentication with Expiry
HardFullstackAuthReactNode.jsMongoDB
Implement access + refresh tokens with expiration & rotation for maximum security.
Role-Based Access Control (Admin/User)
HardFullstackReactNode.jsMongoDB
Add admin role that can manage all users, while normal users can manage only themselves.
Admin Dashboard with Stats Overview
MediumFullstackReactChart.jsNode.js
Build dashboard cards showing total users, active users, recent signups using charts.
Full CRUD Product Management
MediumFullstackNode.jsExpress.jsMongoDBReact
Add Product create, read, update, delete with images & categories.
Image Upload with Cloud Storage
HardFullstackNode.jsAWSCloudinary
Upload product images to Cloud storage and store URL in DB.
Next.js App Router Contact Form Email
MediumNext.jsFullstackNode.js
Send email from Next.js API using SMTP / Resend / EmailJS.
Forgot Password + Email OTP Verification
HardFullstackAuthMongoDBNode.js
Send OTP to email + allow user to reset password securely.
Multi-Factor Authentication (MFA)
ExpertFullstackSecurity
Add 2FA using TOTP (Google Authenticator) or email OTP.
Infinite Scroll Blog Feed
MediumReactNext.jsMongoDB
Fetch more posts on scroll instead of pagination controls.
Next.js Blog with Markdown Support
MediumNext.jsFullstack
Support Markdown files as blog posts + dynamic routing.
SEO Optimization + Sitemap + Robots.txt
MediumNext.jsSEO
Add SEO improvements including sitemap generation and meta tags.
WebSockets Live Chat System
HardNode.jsSocket.IO
Allow real-time messaging with typing indicator & online users list.
Real-Time Notifications System
HardWebSocketsMongoDBExpress.js
Push notification alerts to users on new message & events.
Stripe Checkout Payments Integration
HardStripeFullstackExpress.jsReact
Add checkout, success page, order history saved in DB.
SQL + Prisma User CRUD App
MediumSQLPrismaFullstackNode.js
Create full CRUD user system in SQL DB using Prisma ORM.
Display Data with Relational Joins
HardSQLPrisma
Join users and their posts + show total posts count.
Dockerize Fullstack App for Deployment
HardDockerFullstack
Containerize backend + frontend with Docker + docker-compose.
Next.js Incremental Static Regeneration (ISR)
MediumNext.js
Generate pages at build time + revalidate automatically.
Fullstack Todo App
EasyReactNode.jsMongoDB
Create Todo app with login + user-specific tasks