A modern web application for efficient waste management and skip hire services. This platform helps users find and book appropriate skip sizes for their waste disposal needs.
Watch Demo Video for Webpage Clean and intuitive interface for desktop users
Watch Demo Video for Mobile Responsive design optimized for mobile devices



Seamless experience across all devices
- Smart Skip Selection: Choose the perfect skip size based on your waste disposal needs
- Responsive Design: Works seamlessly on desktop and mobile devices
- User-Friendly Interface: Clean and modern UI for better user experience
- Guided Booking Process:
- Interactive stepper interface for both desktop and mobile
- Clear progress indication through booking steps
- Responsive stepper design adapts to screen size
- Data Persistence:
- Form data persists across component navigation
- Seamless user experience with no data loss
- State management across the entire booking flow
- Validation & Flow Control:
- Skip size selection required before proceeding
- Guided user journey prevents incomplete submissions
-
Stepper Design: Inspired by Dribbble Stepper Components
- Clean and intuitive step navigation
- Visual progress indication
- Seamless transitions between steps
-
Skip Selection UI: Inspired by Nike Sneakers Product Card
- Improved user focus on selected skip
-
Streamlined Skip Selection:
- Replaced overwhelming list view with focused card-based display
- Clear presentation of skip information after selection
- Reduced cognitive load for users
-
Enhanced Mobile Experience:
- Smooth scroll transitions to skip details
- Optimized layout for mobile devices
- Intuitive navigation between steps
-
Progressive Disclosure:
- Step-by-step information presentation
- Clear validation feedback
- Guided user journey with enabled/disabled states
- Frontend Framework: React with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- State Management: React Hooks
- Type Safety: TypeScript
- Code Quality: ESLint
- Development Tools:
- Fast Refresh for quick development
- Path aliases for clean imports
- Modern JavaScript features
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/yourusername/rem-waste.git cd rem-waste -
Install dependencies:
npm install # or yarn install -
Start the development server:
npm run dev # or yarn dev -
Open your browser and visit
http://localhost:5173
npm run build
# or
yarn buildThis project uses Vitest for testing, which provides a fast and modern testing experience. The test configuration includes:
- Test Environment: JSDOM for browser environment simulation
- Coverage Provider: V8 for accurate code coverage reporting
- Test Location: Tests are located in
src/__tests__directory - File Pattern:
*.test.tsor*.spec.tsfiles
-
Run tests in watch mode:
npm test -
Run tests with coverage:
npm run test:coverage
-
Run specific test file:
npm test src/__tests__/utils.test.ts
Tests are organized in the src/__tests__ directory with the following structure:
src/
__tests__/
utils.test.ts # Utility function tests
Example of a test file structure:
import { describe, it, expect } from 'vitest';
import { formatCurrency } from '../utils';
describe('formatCurrency', () => {
it('should format a number with pound symbol', () => {
expect(formatCurrency(100)).toBe('£100');
});
it('should handle undefined values', () => {
expect(formatCurrency(undefined)).toBe('£0');
});
});For any inquiries, please contact: sonesh.aps@gmail.com


