Een interactieve kaart applicatie die studenten stages in Nederland toont. Gebouwd met React, Leaflet.js en TailwindCSS.
- 🗺️ Interactieve Kaart - Volledige kaart van Nederland met zoom en pan besturing
- 📍 Bedrijfspins - Klikbare markers die stage locaties tonen
- 🔍 Zoekfunctionaliteit - Zoek naar bedrijven op naam
- 🏷️ Tag Filtering - Filter bedrijven op technologie focus (Software, Web, Mobile, XR, Game, Applied, Research)
- 📊 Real-time Statistieken - Bekijk bedrijf, stage en stad aantallen
- 📱 Responsief Ontwerp - Werkt op desktop en mobiele apparaten
- 🎯 Vloeiende Interacties - Kaart positie behouden tijdens filtering
- React 18 - Frontend framework
- Leaflet.js - Interactieve kaart bibliotheek
- TailwindCSS - Utility-first CSS framework
- Leaflet.markercluster - Marker clustering voor betere gebruikerservaring
- Node.js (versie 14 of hoger)
- npm of yarn
- Clone the repository:
git clone https://github.com/fvugt/stagekaart.github.io.git
cd stagekaart.github.io- Install dependencies:
npm install- Start the development server:
npm start- Open http://localhost:3000 to view it in the browser.
- The
homepagefield inpackage.jsonis already configured:
"homepage": "https://stagekaart.github.io"- Push your code to the existing repository:
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/fvugt/stagekaart.github.io.git
git push -u origin main- Deploy to GitHub Pages:
npm run deploy- Go to your repository settings and enable GitHub Pages from the
gh-pagesbranch.
src/
├── components/
│ ├── Map.js # Hoofdkaart component met Leaflet
│ ├── SearchBar.js # Zoekfunctionaliteit
│ ├── TagFilter.js # Technologie tag filtering
│ └── InternshipPanel.js # Bedrijfsdetails panel
├── data/
│ └── internships.json # Bedrijf en stage data
└── App.js # Hoofdapplicatie component
De applicatie gebruikt een JSON bestand (src/data/internships.json) met de volgende structuur:
{
"id": 1,
"companyName": "Company Name",
"coordinates": [52.3676, 4.9041],
"address": "Company Address",
"description": "Company description",
"city": "City Name",
"website": "company-website",
"email": "contact-email",
"phone": "contact-phone",
"tags": ["Software", "Web", "Mobile"],
"students": [
{
"name": "Student Name",
"duration": "6 months",
"year": 2023,
"role": "Stage Role",
"description": "What the student did"
}
]
}- Open
src/data/internships.json - Voeg een nieuw bedrijf object toe volgens de structuur hierboven
- Voeg geldige coördinaten toe (latitude, longitude)
- Voeg passende technologie tags toe
- Voeg student stage details toe
- Logo's zijn optioneel en niet meer vereist
- Software - Software ontwikkeling
- Web - Web ontwikkeling
- Mobile - Mobiele app ontwikkeling
- XR - Extended Reality (VR/AR)
- Game - Game ontwikkeling
- Applied - Applied game ontwikkeling
- Research - Onderzoek & ontwikkeling
- 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
This project is licensed under the MIT License.
- Leaflet.js for the mapping functionality
- TailwindCSS for the styling framework
- OpenStreetMap for the map tiles