An interactive web application that helps users find and rate study locations in their area.
Study-Findr is a comprehensive platform that helps students and professionals find the perfect study spots based on various criteria like quietness, internet quality, and seating comfort. Users can discover, review, and bookmark their favorite study locations, including libraries and cafes.
Built with:
- React frontend
- Flask backend API
- MongoDB for data storage
- Google Maps integration
To set up the project for the first time, run:
# Run the setup script to install all dependencies for both frontend and backend
node setup.js
The setup script will:
- Install all frontend dependencies (React, Tailwind CSS, etc.)
- Set up the Python virtual environment for the backend
- Install all backend dependencies from requirements.txt
- Configure necessary environment variables
To start both the frontend and backend servers in one command:
# Start both servers simultaneously
node start.js
This script will:
- Start the React frontend on http://localhost:3000
- Start the Flask backend API on http://localhost:5000
- Display logs from both servers in the terminal
After starting the servers:
- Frontend UI: http://localhost:3000
- Backend API: http://localhost:5000
If you prefer to run the frontend and backend separately:
# Start only the frontend
cd studyfront
npm start
# Start only the backend
cd api
source venv/bin/activate # On macOS/Linux
# OR
venv\Scripts\activate # On Windows
python studyfindr.py
- Node.js (v14.0.0 or higher)
- Python 3.10 or higher
- MongoDB (local installation or cloud service)
- Google Maps API key (for map functionality)
The setup script will prompt for necessary environment variables, or you can manually set them up:
MONGO_URI
: MongoDB connection stringSECRET_KEY
: Secret key for session managementGOOGLE_MAPS_API_KEY
: API key for Google Maps services
REACT_APP_GOOGLE_MAPS_API_KEY
: Google Maps API key for frontendREACT_APP_API_URL
: Backend API URL (default: http://localhost:5000)
- Interactive map interface with location markers
- User authentication and profiles
- Location bookmarking
- Detailed location reviews with multiple rating categories
- Smart filtering by location type and ratings
- Responsive design for mobile and desktop