Skip to content

Latest commit

 

History

416 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SurPlace — Verified Food Review App

SurPlace is a mobile app where users review restaurants and plates using live photo/video capture, with location verification support. Managers can manage restaurants, plates, images, and customer feedback.

Tech Stack

  • Mobile: React Native / Expo
  • Backend: Node.js / Express
  • Database: MongoDB
  • Media: Cloudinary
  • Auth: JWT

Project Structure

  • apps/api = backend
  • apps/mobile = mobile app
  • docs = documentation

Requirements

  • Node.js
  • npm
  • MongoDB Community Server
  • Expo Go
  • Git

Install Dependencies

From the project root:

npm install

If PowerShell blocks npm, use:

npm.cmd install

Create Environment Files

Backend file:

apps/api/.env

PORT=5000
MONGODB_URI=mongodb://127.0.0.1:27017/verified-food-review
JWT_SECRET=local-demo-secret
JWT_EXPIRES_IN=7d
REVIEW_VERIFICATION_RADIUS_METERS=200
ENFORCE_LOCATION_VERIFICATION=false

Mobile file:

apps/mobile/.env

EXPO_PUBLIC_API_URL=http://YOUR_COMPUTER_IP:5000/api
EXPO_PUBLIC_CLOUDINARY_CLOUD_NAME=dqol2c4rp
EXPO_PUBLIC_CLOUDINARY_UPLOAD_PRESET=verified_food_upload
EXPO_PUBLIC_ENFORCE_LOCATION_VERIFICATION=false

To find your computer IP on Windows:

ipconfig

Use your IPv4 address.

Important:

  • Your phone and computer must be on the same Wi-Fi network.
  • Do not use localhost or 127.0.0.1 in apps/mobile/.env.

Start MongoDB

Windows:

Get-Service MongoDB
Start-Service MongoDB

Seed Demo Data

From the project root:

npm.cmd --workspace apps/api run seed

Start Backend

From the project root:

npm.cmd --workspace apps/api run dev

Swagger API docs are available at:

http://localhost:5000/api-docs

Expected output:

MongoDB connected
API listening on port 5000

Start Mobile

Open a second terminal from the project root:

npm.cmd --workspace apps/mobile run start:clear

Then scan the QR code with Expo Go.

Demo Accounts

Manager:

  • Email: manager@verifiedfood.demo
  • Password: Password123!

User:

  • Email: alice@verifiedfood.demo
  • Password: Password123!

Important Notes

  • User reviews require one live photo or video.
  • Gallery is blocked for user reviews.
  • Managers can use camera or gallery for restaurant and plate images.
  • Location verification exists but is disabled for demo.

To enable strict location checking later:

In apps/api/.env:

ENFORCE_LOCATION_VERIFICATION=true

In apps/mobile/.env:

EXPO_PUBLIC_ENFORCE_LOCATION_VERIFICATION=true

Common Errors

MongoDB connection refused:

  • Start the MongoDB service.

Mobile cannot connect:

  • Check your IP address.
  • Make sure phone and computer are on the same Wi-Fi.
  • Make sure the backend is running.
  • Check if firewall is blocking port 5000.

Cloudinary upload fails:

  • Check EXPO_PUBLIC_CLOUDINARY_CLOUD_NAME
  • Check EXPO_PUBLIC_CLOUDINARY_UPLOAD_PRESET

Expo cache issue:

npm.cmd --workspace apps/mobile run start:clear

About

ASurPlace is a React Native mobile app revolutionizing culinary discovery. Driven by the motto "Proof, Not Promises," it replaces outdated photos with 100% live video food reviews. Diners explore authentic visual menus to see exactly what they'll eat, while restaurants use a dedicated dashboard to showcase their dishes dynamically.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages