This repository contains a clone of the Apple Watch customization experience built with modern web technologies.
- Next.js: A React framework for building optimized and scalable web applications.
- Tailwind CSS: A utility-first CSS framework for building custom designs efficiently.
- Swiper.js: A modern touch slider library for building interactive carousels.
The project is structured into logical directories for better maintainability and scalability:
src/
├── app/
│ ├── components/
│ │ ├── common/
│ │ │ ├── AppleWatchSe.jsx
│ │ │ ├── Header.jsx
│ │ │ ├── HermesSeries.jsx
│ │ │ ├── Loading.jsx
│ │ │ ├── SeriesTen.jsx
│ │ ├── CaseSlide.jsx
│ │ ├── Dropdown.jsx
│ │ ├── Navigation.jsx
│ │ ├── SaveShare.jsx
│ │ ├── ShareModal.jsx
│ │ ├── SizeSlide.jsx
│ │ ├── StrapSlide.jsx
│ ├── Context/
│ │ ├── ActiveIndex/
│ │ │ ├── ActiveIndexContext.js
│ │ ├── Dropdown/
│ │ │ ├── DropdownContext.js
│ │ │ ├── useDropdown.js
│ │ ├── WatchSelect/
│ │ │ ├── WatchSelectContext.js
│ ├── pages/
│ │ ├── HomeScreen.jsx
├── utils/
│ ├── shared/
│ │ ├── constants.js
│ ├── data/
│ │ ├── BandData.js
│ │ ├── hermesData.js
│ │ ├── SpecialEditionData.js
-
Clone the repository:
git clone https://github.com/your-username/apple_watch_clone.git
-
Navigate to the project directory:
cd apple_watch_clone -
Install dependencies:
npm install
-
Start the development server:
npm run dev
The application will be available at http://localhost:3000.
-
Build the project for production:
npm run build
-
Start the production server:
npm start
- Dynamic Strap Selection: Users can choose from different straps with smooth Swiper.js carousels.
- Responsive Design: Tailored layouts for different screen sizes, ensuring a great experience on any device.
- Context API Integration: Efficient state management using React Context for strap selection and active index handling.
- Reusable Components: Modular and reusable components like
Dropdown,Navigation, andLoading. - Optimized Assets: Using
next/imagefor optimized image rendering and lazy loading.
- Next.js: React framework for server-side rendering and static site generation.
- Tailwind CSS: For utility-first styling.
- Swiper.js: To create interactive carousels.
- html2canvas: For generating screenshots of the customized Apple Watch.
npm run dev: Starts the development server.npm run build: Builds the project for production.npm start: Starts the production server.npm run lint: Lints the codebase to ensure code quality.
- Authentication: Add user authentication and profile management.
- Backend Integration: Connect to a backend API for persisting customization data.
- Enhanced UI/UX: Include animations and additional customization options.
- Performance Optimizations: Leverage caching and other optimization techniques for faster performance.
Author: B.Amitesh (bamitesh520@gmail.com)