A modern, lightweight currency converter web application built with vanilla HTML, CSS, and JavaScript. Get real-time exchange rates with zero hidden fees, inspired by the design of Wise.com.
Live Site: https://yaqubumar.github.io/flowfx/
β¨ Real-Time Conversion - Converts currency instantly as you type
π± 100+ Currencies - Access to all major world currencies
π Dark Mode - Toggle between light and dark themes with persistent storage
β‘ No Hidden Fees - See actual exchange rates from the market
π± Fully Responsive - Works seamlessly on desktop, tablet, and mobile
βΏ Accessible - Built with WCAG accessibility standards
π Currency Swap - Quickly swap "from" and "to" currencies
βοΈ Zero Configuration - Just open and use, no API keys required
- Visit https://yaqubumar.github.io/flowfx/
- Enter the amount you want to convert
- Select the currency you're converting from
- Select the currency you're converting to
- See the real-time conversion result instantly
- Use the swap button (β) to quickly reverse currencies
- Toggle dark mode with the moon icon in the header
- HTML5 - Semantic markup with accessibility features
- CSS3 - Modern styling with CSS variables and responsive design
- JavaScript (ES6+) - Vanilla JS with async/await for API calls
- Frankfurter API - Free, open-source exchange rate data
This project uses the free Frankfurter API for exchange rates:
- No authentication required
- No rate limits for reasonable usage
- Real-time exchange rates
- Supports 30+ currencies
flowfx/
βββ index.html # Main HTML file
βββ asset/
β βββ css/
β β βββ styles.css # CSS styling
β βββ js/
β βββ script.js # JavaScript functionality
βββ .github/
β βββ workflows/
β βββ deploy.yml # GitHub Pages deployment workflow
βββ README.md # This file
- A modern web browser (Chrome, Firefox, Safari, Edge)
- No server or build tools required!
-
Clone the repository:
git clone https://github.com/yaqubumar/flowfx.git cd flowfx -
Open in browser:
- Double-click
index.html, or - Right-click
index.htmlβ "Open with" β your browser, or - Use a local server (optional):
# Python 3 python -m http.server 8000 # Python 2 python -m SimpleHTTPServer 8000 # Node.js (with http-server) npx http-server
- Double-click
-
Access locally:
- Direct: Open
index.htmlin your browser - Server: Navigate to
http://localhost:8000
- Direct: Open
- Conversion happens automatically as you type
- No need to click a button
- Instant feedback with exchange rate display
- Your theme preference is saved to browser storage
- Automatically loads your preferred theme on next visit
- Smooth transitions between themes
- Quick button to swap source and currency
- Maintains conversion instantly after swap
- Animated rotation effect on button
- Validates user input before conversion
- Clear error messages
- Graceful handling of API failures
- Mobile-first approach
- Works perfectly on all screen sizes
- Touch-friendly interface
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile browsers (iOS Safari, Chrome Mobile)
- Size: ~10KB total (HTML, CSS, JS combined)
- Load Time: < 1 second
- Dependencies: Zero external dependencies
- Caching: Leverages browser caching
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Exchange rates are updated once per day by Frankfurter API
- Requires internet connection to fetch exchange rates
- Browser storage used for theme preference only
- Historical exchange rate charts
- Saved conversion history
- Multiple currency conversion
- Offline mode with last known rates
- PWA support for mobile app installation
- More theme options
This project is open source and available under the MIT License.
This project was developed with the assistance of AI (GitHub Copilot). AI was instrumental in:
- Designed the responsive grid-based UI layout
- Generated semantic HTML structure with proper accessibility attributes
- Created modular, maintainable JavaScript functions
- Implemented CSS variables system for theme switching
- Real-Time Conversion Logic - Async/await pattern for API calls
- Theme Persistence - localStorage integration for user preferences
- Price Comparison Table - Dynamic table generation and population
- Error Handling - Comprehensive try-catch blocks and user feedback
- Responsive Design - Mobile-first CSS with media queries
- Fixed syntax errors and naming inconsistencies
- Optimized JavaScript performance with vanilla ES6+
- Ensured cross-browser compatibility
- Improved accessibility with ARIA labels and semantic HTML
- Generated comprehensive README
- Created clear code comments
- Structured git commit messages
- Planning - Helped define project structure and feature set
- Code Review - Identified bugs and suggested improvements
- Testing - Validated logic and edge cases
- Refactoring - Improved code quality and maintainability
- Documentation - Generated clear, helpful documentation
- All major decisions and feature requests came from human input
- Design inspiration from Wise.com was human-driven
- Feature prioritization and refinement was human-guided
- Final review and testing by human developer
Note: While AI significantly accelerated development, the project maintains high code quality, accessibility standards, and follows best practices for production-ready applications.
- GitHub Copilot - For AI-assisted code generation and development
- Frankfurter API - For providing free, reliable exchange rate data
- Wise.com - Design inspiration for the user interface
- Built with β€οΈ using vanilla web technologies
For issues, suggestions, or questions:
- Open an issue on GitHub Issues
- Check existing issues before opening a new one
This site is automatically deployed to GitHub Pages whenever you push to the main branch. The deployment workflow is configured in .github/workflows/deploy.yml.
- Fork this repository
- Enable GitHub Pages in Settings β Pages
- Select
mainbranch and/ (root)folder - Your site will be live at
https://your-username.github.io/flowfx/
Made with β€οΈ for people on the go | Live Demo