A modern React interface for selecting and booking skip hire services. This application provides an intuitive interface for users to browse, filter, and select skip sizes based on their requirements.
- Progress Tracking: Visual progress steps showing the booking journey
- Smart Filtering: Filter skips by size, price, road allowance, and hire duration
- Interactive Carousel: Browse through available skip options with smooth animations
- Responsive Design: Fully responsive layout that works on all device sizes
- Modern UI: Clean and intuitive user interface with smooth animations
- Real-time Price Calculation: Automatic price calculations including VAT
- React 20
- CSS3 with CSS Variables
- Lucide React (for icons)
- Modern JavaScript (ES6+)
- React.js: Core framework for building the user interface
- Create React App: Project bootstrapping and build configuration
- CSS3:
- CSS Variables for theming
- Flexbox and Grid for layouts
- Media Queries for responsiveness
- CSS Animations and Transitions
- JavaScript (ES6+):
- Arrow Functions
- Destructuring
- Async/Await
- Template Literals
- Lucide React: Icon library
- Custom Components:
- Progress Steps
- Filter Section
- Carousel
- Navigation
- Skip Cards
- Skip Images
- Node.js: Runtime environment
- npm: Package manager
- Git: Version control
- REST API: Integration with WeWantWaste API
- Fetch API: For making HTTP requests
- JSON: Data format for API communication
- POSTMAN
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
my-app/
├── src/
│ ├── components/
│ │ ├── Carousel/
│ │ │ ├── Carousel.js
│ │ │ └── Carousel.css
│ │ ├── FilterSection/
│ │ │ ├── FilterSection.js
│ │ │ └── FilterSection.css
│ │ ├── Navigation/
│ │ │ ├── Navigation.js
│ │ │ └── Navigation.css
│ │ ├── ProgressSteps/
│ │ │ ├── ProgressSteps.js
│ │ │ └── ProgressSteps.css
│ │ ├── SkipCard/
│ │ │ └── SkipCard.js
│ │ └── SkipImage/
│ │ └── SkipImage.js
│ ├── App.js
│ ├── App.css
│ └── index.js
└── package.json
Before you begin, ensure you have the following installed:
- Node.js (v14.0.0 or higher)
- npm (v6.0.0 or higher)
- Clone the repository:
git clone [repository-url]
cd my-app- Install dependencies:
npm install- Start the development server:
npm startThe application will be available at http://localhost:3000
npm start: Runs the app in development mode
- Shows the current step in the booking process
- Visual progress indicator with step numbers and names
- Responsive design that adapts to mobile view
- Interactive filters for skip selection
- Range sliders for size and price
- Toggle switch for road allowance
- Dropdown for hire duration
- Reset filters functionality
- Smooth sliding animation for skip cards
- Navigation buttons for browsing
- Responsive grid layout
- Loading and error states
- Skip card selection functionality
- Back and Continue buttons
- Size information note
- Fixed position at bottom of screen
- Responsive layout for mobile devices
- Displays individual skip hire options
- Features skip image with size badge
- Shows skip details including:
- Title and size information
- Road allowance status
- Hire period
- Price with VAT calculation
- Interactive selection with hover effects
- Visual feedback for selected state
- Responsive design for all screen sizes
- Handles skip image display and optimization
- Manages image loading states
- Provides fallback for missing images
- Displays size badge overlay
- Maintains consistent aspect ratio
- Optimized for performance with lazy loading
The project uses a modular CSS approach with:
- Global styles and variables in
App.css - Component-specific styles in their respective CSS files
- CSS variables for consistent theming
- Responsive design using media queries
- Modern CSS features like flexbox and grid
The application fetches skip data from:
https://app.wewantwaste.co.uk/api/skips/by-location
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Icons provided by Lucide React
- Design inspiration from modern web applications
- API provided by WeWantWaste