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.
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
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
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
- 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
- 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
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
# 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.