w3resource

Daily Coding Challenges & Projects


Weekend


Frontend Mini Project Challenge

Mini Frontend Project:

Challenge :

Create a Responsive Image Gallery using HTML, CSS, and JavaScript or Vue/React.

Requirements :

  • Grid layout that adapts to screen size (media queries or CSS Grid/Flexbox).
  • Click on image → open in modal/lightbox.
  • Add filtering options (e.g., nature, tech, people).

Try it online : [CodePen/CodeSandbox Starter]

Backend Challenge

Scala, R, Swift, TypeScript

Scala Task :

Challenge : Create a simple HTTP server using Akka HTTP that returns "Hello, Scala!" on the root route.

Requirements :


R Task :

Challenge : Build an R script that reads a CSV file and exposes a REST API using Plumber to return summary statistics.


Swift (Server-side with Vapor) Task :

Challenge : Create a simple GET endpoint /hello in Vapor that returns a JSON message: { "message": "Hello from Swift Server" }


TypeScript Task :

Challenge : Build a REST API in Node.js + Express + TypeScript that has a POST endpoint /user to save user data (name, email) in memory.


Database Query Challenge

Problems on SQL - HR Database :

  1. Write a SQL query to list the top 3 departments with the highest total salary expenditure.
  2. Write a SQL query to find employees who have the same manager and joined in the same year.
Structure of HR database :

HR database



Data Structures & Algorithms Challenge

  • Easy:
    • Problem : Implement a stack using two queues.
    • Hint : Use Queue
  • Medium:
    • Problem : Given an integer array, return the maximum sum of a non-empty subarray with at most one deletion.
    • Hint : Dynamic Programming
  • Hard:
    • Problem : Given a 2D grid of letters and a list of words, return all words that can be formed by sequentially adjacent letters.
    • Hint : DFS + Memoization

Bug of the Day

Language Rotation : Scala, R, Swift, TypeScript

Bug – TypeScript :

    Buggy Code:

    
    function greetUser(name: string): string {
      return "Hello, " + name;
    }
    greetUser(); // What's the bug?
    

Task : Identify and fix the bug.


📋 Daily Micro-Project

Backend Focus :

Micro-Project :

Create a simple file upload API using any backend language (e.g., TypeScript with Express, Scala with Akka, Swift Vapor).

Requirements :

  • Accept image uploads.
  • Validate file type and size.
  • Save file locally and return path in JSON response.

Trivia: 5 Fun Facts

  1. The first computer programmer was Ada Lovelace.
  2. Java was initially called Oak.
  3. PHP originally stood for "Personal Home Page".
  4. The Linux mascot, Tux, is a penguin because Linus Torvalds likes penguins.
  5. Python is named after the comedy group Monty Python.

Tool & Resource of the Day

Tool : Postman

Test, monitor, and document APIs easily.

Resource Roundup :

Free resources to master TypeScript:

  • TypeScript Handbook
  • Learn TypeScript by Codecademy
  • GitHub Repos: Type challenges (Beginner to Advanced)

Interview Question of the Day

Daily Interview Questions

    Frontend :
    1. What are fragments in React and why are they used?
    2. Explain Vue.js lifecycle hooks.
    3. How do CSS variables work, and how are they scoped?
    4. What's the difference between debouncing and throttling?
    Backend :
    1. Explain immutability and how it applies in Scala.
    2. What is Vapor in Swift, and how is it used for server-side development?
    3. Compare REST and SOAP web services.
    4. What is lazy evaluation and where is it useful?
    Database :
    1. How does a database engine use query execution plans?
    2. What is a materialized view?
    3. Explain ACID properties in transactions.
    Others :
    1. What’s the difference between virtual machines and containers?
    2. How does Git internally manage file versioning?

Daily Quiz Challenge

    Frontend :

    1. What will typeof NaN return?
      • "NaN"
      • "number"
      • "undefined"
      • "object"
    2. Which CSS property is used to animate elements?
      • transition
      • transform
      • display
      • opacity
    3. In Vue.js, what is a computed property used for?
      • DOM manipulation
      • Template rendering
      • Caching derived values
      • Event handling

    Backend :

    1. What does the await keyword do in JavaScript?
    2. How do you define a route in Express.js?
    3. What’s the output of len("[]") in Python 3?

    Database :

    1. Which SQL command is used to remove a table?
      • DROP
      • DELETE
      • REMOVE
      • TRUNCATE

    Others :

    1. Which command lists all running Docker containers?
      • docker list
      • docker ps
      • docker show
      • docker status

    Mixed Quiz :

    1. What does the following JavaScript code return?
      • console.log(typeof null);
        
      • "null"
      • "object"
      • "undefined"
      • "boolean"

Weekly Cross-Domain Activities ( May 23 to May 29, 2025 )

API of the Day:

Project: Build a news feed using the NewsAPI.

  • Endpoint: https://newsapi.org/v2/top-headlines?country=us
  • Display the title, image, and description of each article.

Linux/DevOps Tip :

10 Useful Commands for Monitoring Server Health:

  • top, htop, iotop, vmstat, netstat, free -m, df -h, uptime, iostat, dstat

Real-World Project of the Week ( May 23 to May 29, 2025 )

Project of the Week:

    Build a "Remote Job Board" with React (Frontend), Node.js (Backend), PostgreSQL (Database).


Collaborative Project:

Contribute to Public APIs GitHub Repo – Add new APIs with proper documentation.

Case Study:

  • Analyze how Trello uses drag-and-drop + real-time sync.
  • Rebuild a Trello-style kanban board with Vue.js or React + Firebase.

Previous Daily Coding Challenges & Projects : 04-04-2025   07-04-2025  08-04-2025  09-04-2025  10-04-2025  11-04-2025  14-04-2025  15-04-2025  16-04-2025  17-04-2025  18-04-2025  21-04-2025  22-04-2025  23-04-2025  24-04-2025  25-04-2025  28-04-2025  29-04-2025  30-04-2025  01-05-2025  02-05-2025  05-05-2025  06-05-2025  07-05-2025  08-05-2025  09-05-2025  12-05-2025  13-05-2025  14-05-2025  15-05-2025  16-05-2025  19-05-2025  20-05-2025  21-05-2025  22-05-2025



Follow us on Facebook and Twitter for latest update.