Ever spent 20 minutes in a group chat going "I don't know, what do you want to eat?", only to end up at the exact same spot as last week?
Makan Apa? is a lightweight web application built to solve food indecision. It maps out local eateries, tracks whether they’re actually open right now, and includes a "Surprise Me!" button to pick a spot for you when your brain refuses to make choices.
- Interactive Map: Uses Leaflet + CartoDB to pin local spots, group clustered locations, and find where you are on the map.
- Live Opening Hours: Reads structured schedule data so you don't accidentally drive to a closed shop.
- Filter by Craving: Toggle categories on and off to narrow down what you're in the mood for (Kopitiams, Mamaks, Western, Cafes, etc.).
- Surprise Me! Button: Picks a random spot that's currently open within your vicinity when you just can't decide.
- Community Submissions: Includes an intuitive map-picker screen to add new places, set schedules, and send them in for approval.
- Frontend: React, React Router
- Maps: Leaflet, React Leaflet, React Leaflet Cluster
- Database: Neon (Serverless PostgreSQL)
- Styling & Icons: CSS, Font Awesome 6
Here are the available spot categories you can explore:
- 🍚 Kopitiam
- 🧇 Mamak
- 🍴 Restaurant
- 🐟 Japanese / Korean
- 🍕 Western
- ☕ Cafe
- 🍔 Fast Food
- 🏪 Convenience Store
- Clone the repository
git clone https://github.com/JuneMinazuki/Makan-Apa.git
cd Makan-Apa- Install dependencies
npm install- Set up environment variables
Create a
.envfile in the root directory and add your Neon Database link:
DATABASE_URL=your_neon_postgres_connection_string- Start the dev server
npm run devGot a favorite local spot missing from the map or an idea to make the app better? Pull requests and feedback are always welcome!