This project is a feature-rich workout tracker application that leverages object-oriented programming principles in JavaScript. It incorporates class-based architecture, Geolocation API for retrieving user location, Leaflet library for interactive maps, and LocalStorage for data persistence.
- Workout Class Hierarchy: Implement a class hierarchy for different types of workouts (Running and Cycling) to encapsulate workout data and behavior.
- Geolocation API Integration: Utilize the Geolocation API to retrieve the user's current position and display it on an interactive map.
- Interactive Map with Leaflet: Integrate the Leaflet library to render an interactive map where users can add new workouts by clicking on the map.
- Form Submission: Enable users to add new workouts through a form submission process, dynamically adjusting the form fields based on the selected workout type.
- Data Persistence with LocalStorage: Implement LocalStorage to store workout data locally in the browser, ensuring that data persists across page reloads and browser sessions.
- Workout Rendering: Dynamically render workout details in a list format below the map, including distance, duration, pace (for running), and speed (for cycling).
- Workout Marker Popups: Display workout details in popups when clicking on workout markers on the map, providing additional information and enhancing user experience.
- Responsive Design: Ensure the application's responsiveness across different screen sizes and device orientations to deliver a consistent user experience.