This is a profile management application built with React.js, leveraging OpenStreetMap (OSM) and Overpass API for free, open-source mapping and geocoding. It fulfills the requirements of the "Frontend Case Study 2025," providing an intuitive interface to view and manage user profiles with interactive location mapping.
- Profile Display: View profiles with name, photo, and description.
- Map Integration: Interactive OSM maps triggered by a "Summary" button, showing profile locations.
- Admin Panel: Add, edit, and delete profiles via a dedicated interface.
- Search & Filter: Filter profiles by name, address, or attributes.
- Detailed Profile View: Access comprehensive profile details (e.g., contact, interests) on a separate page.
- Tooltips: Added for clarity (e.g., on "Summary" button) using react-tooltip.
- Responsive Design: Adapts to mobile, tablet, and desktop with CSS media queries.
- Loading States: Visual feedback during map loading and data fetching.
- Error Handling: Graceful handling of geocoding or API errors (e.g., "Address not found").
- React.js: Built with functional components and hooks (useState, useContext, useEffect).
- OpenStreetMap: Map rendering with react-leaflet and OSM tiles (https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png).
- Overpass API: Free geocoding of addresses to coordinates (https://overpass-api.de/api/interpreter).
- Local Storage: Persistent profile data storage.
- Routing: Navigation with react-router-dom for profile list, details, and admin panel.
- Enhance geocoding accuracy for global addresses with refined Overpass API queries.
- Add theme switching (light/dark mode) with react-switch or CSS variables.
- Implement full authentication for admin panel (e.g., Firebase).
- Add unit tests with react-testing-library and integration tests with Cypress.
- Optimize map loading performance with tile caching or pre-fetching.
- Clone the repository:
git clone https://github.com/CoderShubhamMate/Profile-Management.git
- Navigate to the project directory:
cd Profile-Management - Install dependencies:
npm install
- Run the development server:
npm start
- react, react-dom: Core React libraries.
- react-router-dom: Routing for navigation.
- react-leaflet, leaflet: OSM map integration.
- react-tooltip: Tooltips for UX.
Deployed on Vercel. To redeploy:
- Build the app:
npm run build
- Deploy with Vercel CLI:
Ensure no environment variables are needed, as OSM and Overpass API are key-free.
vercel --prod
- View Profiles:
- Browse profiles on the homepage (/), click "Summary" for maps.
- Search Profiles:
- Use the search bar to filter by name or address.
- View Details:
- Navigate to /profile/[id] for detailed info.
- Manage Profiles:
- Access /admin to add, edit, or delete profiles.
- ARIA labels: Added on buttons and inputs (e.g.,
<button aria-label="View map summary">). - Keyboard navigation: Support with tabIndex.
- Color contrast: Basic adjustments in CSS.
- Framework: React.js with functional components.
- Styling: Vanilla CSS with media queries.
- Map: OSM via react-leaflet, geocoding with Overpass API.
- State: Managed with React Context and local storage.
- Routing: react-router-dom for page navigation.
This project is open-source and available under the MIT License.