JSXplorer is a modern, interactive web application for exploring cities and countries. Built with React, TypeScript, and modern state management, it provides a seamless experience for users to navigate and interact with geographical data.
- π Authentication (Login system with a fake user)
- πΊοΈ Interactive Map (Powered by Leaflet)
- π City & Country Data (Fetched from an API or local JSON)
- π Geolocation (Reverse geocoding with an external API)
- β‘ Optimized Performance (Lazy loading & Suspense)
- π₯ Error Handling (Error Boundaries with a custom fallback UI)
- π Context API (Efficient global state management)
- π¨ Styled Components (CSS modules for modular styling)
- π¦ Routing (Protected routes with React Router)
- βοΈ Development Server (Powered by
json-serverfor local API simulation)
- βοΈ React β Component-based UI development.
- π¦ TypeScript β Strong typing for reliability.
- π React Router β Navigation between different views.
- πΊ Leaflet.js β Interactive map rendering.
- π₯ Vite β Fast development and build process.
- π Context API & Reducers β State management.
- π Try JSXplorer Now!
- Tests are not implemented yet, but they will be added soon using Vitest and React Testing Library to ensure reliability and maintainability.
1οΈβ£ Clone the repository: git clone https://github.com/emad-abaei/JSXplorer.git
2οΈβ£ Navigate to the project directory: cd JSXplorer
3οΈβ£ Install dependencies: npm install
4οΈβ£ Start the json server: npm run server
5οΈβ£ Start the development server: npm run dev
This project was originally inspired by a course from Jonas Schmedtmann. While the core idea comes from the course, I have made several enhancements, including:
I extended the project by:
β Migrating from JavaScript to TypeScript for better type safety and maintainability.
β Refactoring and optimizing the codebase for cleaner, more efficient development.
Contributions are welcome! Feel free to submit issues or pull requests.