A mobile app for discovering and reviewing study spaces on campus. Built with React Native, Expo, and PocketBase.
- 🗺️ Interactive Map - Browse study spots with map pins and filters
- ⭐ Favorites - Save your favorite study locations
- ✅ Visited Tracking - Keep track of places you've been
- 📝 Reviews - Leave and manage reviews for places you've visited
- 🎯 Personalized Quiz - Get study spot recommendations based on your preferences
- 👤 Account Dashboard - View your activity, reviews, and stats
⚠️ Important: This setup guide is specifically for macOS with an iPhone for testing.
- MacBook (macOS)
- iPhone (for testing via Expo Go)
- Both devices must be on the same WiFi network
git clone https://github.com/zheniasigayev/study-spot-app.git
cd study-spot-appbrew install pocketbaseOpen a terminal window and run:
cd backend
pocketbase serve --http="0.0.0.0:8090"The backend will start at http://127.0.0.1:8090
- Admin Dashboard:
http://127.0.0.1:8090/_/ - The database (
pb_data/) is pre-populated with sample McMaster University study spots
Note: Using
0.0.0.0:8090allows your iPhone to connect to the backend over your local network.
Open a new terminal window and run:
cd frontend
npm installnpx expo startThis will display a QR code in the terminal.
- Open the Camera app on your iPhone
- Scan the QR code displayed in the terminal
- Tap the notification to open in Expo Go
The app will automatically detect your Mac's IP address and connect to the PocketBase backend.
study-spot-app/
├── backend/
│ └── pb_data/ # PocketBase database & uploads
├── frontend/
│ ├── app/
│ │ ├── (tabs)/ # Tab screens (home, favorites, visited, quiz, account)
│ │ └── place/ # Place detail screen
│ ├── lib/
│ │ └── pocketbase.ts # PocketBase client configuration
│ └── assets/ # Fonts and images
└── README.md
| Collection | Description |
|---|---|
users |
User accounts (auth collection) |
places |
Study locations with details and photos |
reviews |
User reviews for places |
favorites |
User's favorited places |
visited |
Places the user has visited |
- Ensure both your Mac and iPhone are on the same WiFi network
- Check that PocketBase is running with
--http="0.0.0.0:8090" - Restart the Expo server with
npx expo start --clear
- Open PocketBase admin at
http://127.0.0.1:8090/_/ - Go to the collection → gear icon → API Rules
- Set List/Search and View rules to empty (public access)
- Shake your iPhone and tap "Reload"
- Or press
rin the Expo terminal
On first run, you'll need to create an admin account at http://127.0.0.1:8090/_/
- Frontend: React Native, Expo, TypeScript
- Backend: PocketBase (SQLite)
- Maps: react-native-maps
- State Management: React Hooks
- Styling: StyleSheet (React Native)
The repository includes pre-populated data for McMaster University:
- 5 Study Locations: Mills Library, Thode Library, Health Sciences Library, PGCLL, MUSC
- 5 Reviews: Sample reviews with ratings
- 3 Favorites: Pre-favorited locations
- 5 Visited: All locations marked as visited
- 1 Test User: Zhenia Sigayev (sigayevy@mcmaster.ca)
MIT License
