This is a fullstack project for a map of FamilyMart stores in Taiwan. It's more intuitive than the Official Map. The project uses React.js and started with this template express-es6-spa-example.
- Node.js
- Express
- Mongoose
- MongoDB
- React.js
- Leaflet
- Bootstrap 5
- Updates: Uses
node-cron
to get store data from FamilyMart API and save it in MongoDB. - Map: Shows stores with Leaflet and OpenStreetMap.Providing users with a more intuitive view.
- Search: Uses MongoDB's Geospatial Query
$near
to search for stores within a specified range. - Filter: Lets users pick stores by services. (e.g., ice cream).
- User Location Detection: Detects user's current location and move the map to there.
- Themes: Has Dark and Light themes for users to switch between.
- Clone this project and do
npm install
. - Rename
server/config.js.example
toconfig.js
and fill it in (MongoDBURI). - Run with
node index.js
. - The program updates store info using
cronSchedule
. You may change the schedule.
- Node.js (version 12.20.0 or newer)