NurseryNav simplifies the search for nearby nursery schools by providing an easy-to-use map interface to help you find the perfect childcare option for your little ones.
Live URL: https://znajdzzlobek.pl/
Backend API DEMO: https://nursery-nav-api.vercel.app/
This project is part of 100 commitow challenge. It helps me learn front-end technologies like React, Typescript, and NestJS.
- Node v20.18.0
Add the .env
file in the folder root with the keys:
VITE_APP_GEOAPIFY_API_KEY=
VITE_APP_API_URL=
VITE_APP_NAME=
VITE_APP_CONTACT_MAIL=
VITE_APP_GOOGLE_ANALYTICS_TRACKING_ID=
VITE_APP_DATA_SOURCE_UPDATE_DATE=
Parameter | Type | Description |
---|---|---|
VITE_APP_GEOAPIFY_API_KEY | string | Key to enable the map. Can be created here: https://www.geoapify.com/get-started-with-maps-api#create-project |
VITE_APP_API_URL | string | URL to the API instance, e.g. on local it can be http://localhost:3000 |
VITE_APP_NAME | string | The custom name of your application. It is displayed in the header and titles across the website |
VITE_APP_CONTACT_MAIL | string | Email used in contact dialog on a map view |
VITE_APP_GOOGLE_ANALYTICS_TRACKING_ID | string | Google Analytics 4 tracking ID |
VITE_APP_DATA_SOURCE_UPDATE_DATE | date | Last data update date, manually entered (displayed in tooltips) |
Go to ./src/nursery-nav
and run npm run
.
A static JSON file is provided as the backend API for the MVP version.
Check ./data/RZ-instytucje-enriched.json
Add the .env
file in the folder root with the keys:
FRONTEND_URL=
CACHE_TTL=
THROTTLE_TTL=
THROTTLE_LIMIT=
MONGODB_URI=
Parameter | Type | Description |
---|---|---|
FRONTEND_URL | string | Provide URL to your frontend instance, e.g. http://localhost:3001 when running on local. This step is not required, but enables the frontend application origin to access the backend API - the app has CORS enabled by default. |
CACHE_TTL | number | Cache expiration TTL in milliseconds. |
THROTTLE_TTL | number | Throttle time limit in milliseconds. |
THROTTLE_LIMIT | number | Calls limit within the TTL. |
MONGODB_URI | string | Connection string to MongoDB database. |
Go to ./src/nursery-nav-api
and run npm run start:dev
.
Go to /api
to display API Swagger doc:
Project backlog is available in Github Projects
Desktop | Mobile |
---|---|
Desktop | Mobile |
---|---|
Feature | Status |
---|---|
Static data source | ✅ |
Map | ✅ |
Pins on map | ✅ |
Institution details view | ✅ |
Search | ✅ |
Display institution details on the pin click | ✅ |
Basic component styling | ✅ |
Group pins on the map | ✅ |
SEO | ✅ |
Sorting | ✅ |
Filtering | ✅ |
Direct URLs to each institution | ✅ |
CICD | ✅ |
Live URL | ✅ |
- Update docs
Feature | Status |
---|---|
Connection to the API | ✅ |
Infinite scroll | ✅ |
Sorting with API | ✅ |
Connect map with API | ✅ |
Filtering with API | ✅ |
Direct URLs to filtered results by query params | ✅ |
Filtering map locations | ✅ |
Autocomplete for institution name | ✅ |
Caching | ✅ |
About page | ✅ |
SEO improvements | ✅ |
Feature | Status |
---|---|
API project | ✅ |
Swagger /api |
✅ |
GET all institutions | ✅ |
GET institution details | ✅ |
GET locations | ✅ |
Sorting | ✅ |
Autocomplete endpoint | ✅ |
Cities/voivodeships endpoint | ✅ |
Filtering | ✅ |
Pagination | ✅ |
CICD | ✅ |
Live URL | ✅ |
CORS | ✅ |
Add real ID to the data source | ✅ |
Data update with new file | ✅ |
- Go-live
- Update README
Feature | Status |
---|---|
Add sitemap | ✅ |
Add Google Analytics | ✅ |
Comparison view | ✅ |
Select items to compare on the list view | ✅ |
Quick filters with cities | ✅ |
Direct URLs to filtered cities and voivodeships | ✅ |
Feedback form v1 (report data error, suggest change) | ✅ |
About page content | ✅ |
Display hour price when monthly not provided | ✅ |
Add 404 page | ✅ |
Add a map to mobile view | ✅ |
Feature | Status |
---|---|
Rate limiting | ✅ |
Helmet | ✅ |
- Institution profile
- Institution rating
- Performance upgrades
- Migrate to Vite
- Profile management
- Convert data source to MongoDB
- Performance upgrade
- Create Admin App
- Display institution list
- Display institution details
- Edit institution details
- Batch update institutions with file import
- Display update comparison
- The "Powrót" button on institution details does not remember the parameters of the previous page
- City and voivodeship filters not selected based on query parameter
- Price is not visible in mobile view when the "Brak wolnych miejsc" chip is displayed
- City dropdown is not filtered based on voivodeship
- Voivodeship is not automatically selected on city dropdown change
- If filters are selected on the list view, the map pin is not displayed on the details view when redirected from autocomplete
- Map does not focus on the pin when visiting the institution details page from a direct link
Static file /data/RZ-instytucje.csv
+ subfolders.
Original data source - Rejestr Żłobków - lista instytucji - dane.gov.pl.
License: CC0 1.0