Skip to content

πŸš€ An interactive React app for exploring cities and countries with dynamic maps, authentication, and real-time data fetching. Built with React, TypeScript, Leaflet, Vite, and Context API.

Notifications You must be signed in to change notification settings

emad-abaei/JSXplorer

Repository files navigation

🌍 JSXplorer

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.

πŸ–ΌοΈ Screenshots

πŸ“Œ Home View

Map View

πŸ“Œ Map View

Map View

πŸš€ Features

  • πŸ” 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-server for local API simulation)

πŸ› οΈ Tools & Technologies

  • βš›οΈ 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.

πŸ”— Live Demo

πŸ§ͺ Testing

  • Tests are not implemented yet, but they will be added soon using Vitest and React Testing Library to ensure reliability and maintainability.

πŸ“‚ Setup & Installation

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

πŸ™Œ Acknowledgments

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.

πŸ“© Contributing

Contributions are welcome! Feel free to submit issues or pull requests.

πŸ“œ License

MIT License This project is licensed under the MIT License.

About

πŸš€ An interactive React app for exploring cities and countries with dynamic maps, authentication, and real-time data fetching. Built with React, TypeScript, Leaflet, Vite, and Context API.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published