Skip to content

zheniasigayev/study-spot-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudySpot - Campus Study Place Finder

A mobile app for discovering and reviewing study spaces on campus. Built with React Native, Expo, and PocketBase.

Platform React Native Backend

Home Screen

Features

  • 🗺️ 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

Requirements

⚠️ Important: This setup guide is specifically for macOS with an iPhone for testing.

Hardware

  • MacBook (macOS)
  • iPhone (for testing via Expo Go)
  • Both devices must be on the same WiFi network

Software

Quick Start

1. Clone the Repository

git clone https://github.com/zheniasigayev/study-spot-app.git
cd study-spot-app

2. Install PocketBase

brew install pocketbase

3. Start the Backend

Open 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:8090 allows your iPhone to connect to the backend over your local network.

4. Install Frontend Dependencies

Open a new terminal window and run:

cd frontend
npm install

5. Start the Frontend

npx expo start

This will display a QR code in the terminal.

6. Run on Your iPhone

  1. Open the Camera app on your iPhone
  2. Scan the QR code displayed in the terminal
  3. Tap the notification to open in Expo Go

The app will automatically detect your Mac's IP address and connect to the PocketBase backend.

Project Structure

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

Database Schema

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

Troubleshooting

"Network request failed" error

  • 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

"Only superusers can perform this action" error

  • 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)

App not updating after code changes

  • Shake your iPhone and tap "Reload"
  • Or press r in the Expo terminal

PocketBase admin login

On first run, you'll need to create an admin account at http://127.0.0.1:8090/_/

Tech Stack

  • Frontend: React Native, Expo, TypeScript
  • Backend: PocketBase (SQLite)
  • Maps: react-native-maps
  • State Management: React Hooks
  • Styling: StyleSheet (React Native)

Sample Data

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)

License

MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors