Skip to content

dubizzle/fe-interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Frontend Interview Exercise: Interactive Todo List

🎯 Exercise Overview

This exercise tests your fundamental knowledge of CSS and JavaScript by building an interactive todo list application with CRUD operations, data persistence, and search/filter functionality.

🚀 Getting Started

  1. Clone this repository

    git clone <repository-url>
    cd frontend-interview-exercise
  2. Install dependencies and start development server

    npm install
    npm run dev

    This will automatically open your browser with hot reloading enabled!

  3. Alternative: Open directly in browser

    • If you prefer, you can also open index.html directly in your browser
    • But using npm run dev gives you hot reloading (browser refreshes automatically when you save files)

Note: This is a starter template. You'll need to implement all the functionality from scratch!

📋 Core Requirements

1. CRD Operations (Create, Read, Delete)

  • Create: Add new todos
  • Read: Display todos in a list
  • Delete: Remove todos from the list

2. UI Structure & Design

  • Clean, organized layout
  • Responsive design for mobile and desktop
  • Proper spacing and typography
  • Visual feedback for user interactions

3. API Integration

  • Fetch todos from DummyJSON API
  • Implement CRUD operations using REST endpoints
  • Handle API responses and errors
  • Load todos from API on page load

4. Search and Sort

  • Search todos by text content (real-time)
  • Sort todos by creation time (newest/oldest first)
  • Sort todos alphabetically (A-Z / Z-A)

🎨 What You'll Build

A fully functional todo application that demonstrates:

  • Modern UI/UX principles
  • Efficient data management
  • Responsive design
  • Professional code structure

🧪 Evaluation Criteria

CSS Skills:

  • Layout techniques (Flexbox/Grid)
  • Responsive design
  • CSS organization and structure
  • Visual design principles

JavaScript Skills:

  • DOM manipulation
  • Event handling
  • Fetch API and async/await
  • Array methods (filter, sort, search)
  • Error handling and API integration
  • Code organization

💡 Implementation Tips

  • Start with basic CRUD functionality
  • Focus on clean, readable code
  • Test API integration early
  • Implement search and sort incrementally
  • Pay attention to responsive design

🎨 Design & Typography

This exercise uses your organization's brand fonts:

  • Primary Font: Proxima Nova (proxima-nova, ProximaNova)
  • Fallback Font: Noto Sans (noto, sans-serif)
  • Professional Typography: Consistent font weights and hierarchy

🚀 Development Experience

This exercise includes built-in hot reloading for a professional development experience and real API integration using DummyJSON Todos API:

🔌 API Integration

The exercise uses real REST API endpoints for a realistic development experience:

  • GET /todos - Fetch all todos
  • POST /todos/add - Create new todo
  • PUT /todos/{id} - Update todo
  • DELETE /todos/{id} - Delete todo

Note: DummyJSON simulates real API behavior but doesn't persist data permanently.

  • Automatic browser refresh when you save files
  • No setup required - just run npm run dev
  • Real API integration - test with actual REST endpoints
  • Works with any code editor (VS Code, WebStorm, Sublime, etc.)
  • Cross-platform compatibility (Windows, Mac, Linux)

🔧 Development Server Details

  • Port: 3000 (http://localhost:3000)
  • File watching: HTML, CSS, and JavaScript files
  • Auto-open: Browser opens automatically
  • Stop server: Press Ctrl+C in terminal

🎉 Good Luck!

Focus on demonstrating solid fundamentals. Take your time, test frequently, and show us your problem-solving approach!


Time limit: 90 minutes total

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors