Skip to content

white-cat-tech/front-end-developer-role-test-project

Repository files navigation

Skip Hire Services - Frontend Implementation

Project Overview

This project is a modern, responsive web application for a skip hire service company. It allows users to browse, filter, and select different skip sizes for hire in the NR32 area with an intuitive and engaging user interface.

My Approach

UI/UX Design Philosophy

I approached this project with a focus on creating an intuitive, visually appealing interface that guides users through the skip selection process. Key considerations included:

  • User-Centric Design: Simplified the selection process with clear visual cues and interactive elements
  • Accessibility: Ensured proper contrast ratios, keyboard navigation, and semantic HTML
  • Responsive Layout: Optimized for all device sizes from mobile to desktop
  • Performance: Implemented efficient rendering techniques to maintain smooth interactions

Technical Implementation

Component Architecture

I structured the application using reusable, modular components to ensure maintainability and scalability:

  • Expandable Card System: Implemented using Aceternity UI components to create a visually engaging card system that expands to show detailed information
  • Filter System: Created an intuitive filtering mechanism that helps users quickly find skips that match their specific requirements
  • Selection Flow: Designed a multi-step selection process with visual feedback at each stage

Animation and Interaction

To enhance the user experience, I implemented:

  • Smooth transitions between states using the Motion library
  • Micro-interactions that provide feedback for user actions
  • Animated card expansions that maintain context while revealing additional information

Technical Choices

  • Next.js: Leveraged the latest features of Next.js 15 for optimal performance and developer experience
  • TypeScript: Used throughout for type safety and improved code quality
  • TailwindCSS: Implemented for consistent styling and responsive design
  • Custom Hooks: Created reusable logic like useOutsideClick for improved component behavior

Features Implemented

  • Interactive skip catalog with expandable cards
  • Filtering system for different skip types and requirements
  • Detailed information display for each skip option
  • Persistent selection bar for improved user flow
  • Responsive design that works across all device sizes
  • Animated transitions for a polished user experience

Future Enhancements

Given more time, I would consider implementing:

  • A more sophisticated filtering system with additional parameters
  • User preference saving using local storage
  • A checkout process with address validation
  • Integration with a backend for real-time availability
  • Improved accessibility features for users with disabilities

Running the Project

# Install dependencies
npm install

# Run development server
npm run dev

# Build for production
npm run build

# Start production server
npm run start

Visit http://localhost:3000 to view the application.