How rml1812/terserah-food-recommender works
Terserah is a food-discovery and restaurant-management web application. Diners browse/search restaurants, explore recommendations, then view restaurant details, reserve, review, and manage wishlists; the tree also identifies a “Terserahin” flow, articles, and payment completion. Restaurant accounts register for review and manage their listing and reservations, while administrators review restaurant accounts. The graph reflects the documented route and sampled review/admin/dashboard behavior; links among unsampled feature handlers and their models are omitted where wiring cannot be verified.
Main entry points: index.js Page routing · server.js Express server · ReviewRoutes.js Review routes · adminDashboardRoutes.js Admin routes
Components 29
Diner experience
- Vue application
src/App.vue - Page routing
src/router/index.js - Browse and search
src/views/Searching.vue - Recommendations
src/views/Recommendation.vue - Terserahin
src/views/Terserahin.vue - Restaurant details
src/views/Restaurant.vue - Reservations
src/views/Reservasi.vue - Reviews
src/components/RestComp/RestReview.vue - Wishlist
src/views/Wishlist.vue - Articles and blog
src/views/Blog.vue - Payment completion
src/views/PaymentFinish.vue
Account operations
- Restaurant accounts
src/views/RestaurantRegister.vue - Restaurant portal
src/views/RestaurantDashboard.vue - Admin portal
src/views/AdminReview.vue - Account review UI
src/components/AdminReview/AdminReview.vue
Application backend
- Express server
server.js - Review routes
routes/ReviewRoutes.js - Admin routes
routes/adminDashboardRoutes.js - Restaurant dashboard routes
routes/restaurantDashboardRoutes.js - Restaurant signup routes
routes/signupRestaurantRoutes.js
Persistent data
- MongoDB
- Review records
model/review.js - Rating records
model/rating.js - Restaurant records
model/restaurant.js - Restaurant account states
model/tempRestaurantACC.js - Approved accounts
model/restaurantACC.js - Rejected accounts
model/tempRejectedRestaurant.js - Reservation records
model/reservation.js
Other components
- Diner
Connections 32
- Diner → Vue application: uses
- Vue application → Page routing: renders routes
- Page routing → Browse and search: routes to
- Page routing → Recommendations: routes to
- Page routing → Terserahin: routes to
- Page routing → Restaurant details: routes to
- Page routing → Reservations: routes to
- Page routing → Wishlist: routes to
- Page routing → Articles and blog: routes to
- Page routing → Payment completion: routes to
- Page routing → Restaurant accounts: routes to
- Page routing → Restaurant portal: routes to
- Page routing → Admin portal: routes to
- Admin portal → Account review UI: renders
- Account review UI → Admin routes: requests accounts
- Reviews → Review routes: fetches and submits
- Express server → Review routes: mounts
- Express server → Admin routes: mounts
- Express server → Restaurant dashboard routes: mounts
- Express server → Restaurant signup routes: mounts
- Express server → MongoDB: connects
- Review routes → Review records: reads and writes
- Review routes → Rating records: reads and writes
- Review routes → Restaurant records: updates rating
- Admin routes → Restaurant account states: reads and updates
- Admin routes → Approved accounts: creates
- Admin routes → Rejected accounts: creates
- Restaurant dashboard routes → Restaurant records: reads and updates
- Restaurant dashboard routes → Reservation records: reads and updates
- Restaurant signup routes → Approved accounts: checks accounts
- Restaurant signup routes → Restaurant account states: checks and creates
- Restaurant signup routes → Rejected accounts: checks and updates