A responsive personal dashboard built using vanilla HTML, CSS, and JavaScript that displays real-time information in a clean and user-friendly interface.
This project focuses on core frontend fundamentals such as async JavaScript, API integration, state management, UI layering, and responsive design β without using any frameworks.
- Live digital clock with 12-hour / 24-hour toggle
- Time-based greeting (Morning / Afternoon / Evening)
- City-based weather search using OpenWeather API
- Location-based weather using the Browser Geolocation API
- Temperature unit toggle (Β°C / Β°F) without additional API calls
- Quote of the Day fetched from an external API
- Random background images with preload handling
- Dark overlay for consistent text readability
- Graceful loading and error states
- Fully responsive layout for mobile and desktop
- HTML5 β Semantic structure
- CSS3 β Responsive design, overlay layering, UI hierarchy
- JavaScript (ES6+) β Async/await, DOM manipulation, state handling
- OpenWeather API β Weather data
- ZenQuotes API (via CORS proxy) β Quote of the day
- Picsum Photos API β Random background images
Desktop view with weather data
Mobile view (responsive layout)

- The app updates the live time every second using
DateandsetInterval. - Weather data is fetched asynchronously using
fetchandasync/await. - Temperature is stored in state and converted between Β°C and Β°F without refetching data.
- Background images are preloaded using the
Imageobject to avoid flickering. - UI layering is achieved using a dark overlay and controlled z-index stacking.
- Responsive behavior is handled using CSS media queries.
This project was built to practice:
- Real-world API integration
- Asynchronous JavaScript
- Clean state management
- UI/UX fundamentals
- Debugging layout and rendering issues
- Writing maintainable, readable code
- Persist user preferences (last city, temperature unit)
- Add accessibility improvements (ARIA labels)
- Add offline fallback handling
- Theme toggle (light / dark)
This project is for learning and personal use.
