This project is a collaborative Django + React application designed to help users explore and review local sightseeing spots. The app integrates geolocation to pinpoint the user's current location, displays nearby places of interest, and provides detailed information such as ratings, reviews, opening hours, and pictures. Users can filter spots based on proximity and categories, making it a convenient tool for discovering restaurants, cafes, and attractions nearby.
- Automatically detects the user's location using the browser's Geolocation API.
- Displays the user's position as a pin on an interactive map.
- Plots nearby places (e.g., restaurants, sightseeing spots, cafes) on the map using styled markers.
- Provides visually appealing marker designs, including circled pins.
- Fetches place data from the backend API and applies filters:
- By proximity (e.g., within 30 minutes by foot).
- By category (e.g., restaurants, activities).
- Displays a scrollable list with details:
- Name
- Image
- Distance
- Rating stars.
- Clicking on a marker opens a detailed view of the selected spot.
- Displays:
- Name of the place.
- Ratings and reviews.
- Opening hours.
- Pictures and additional details.
- Enables users to submit reviews through a simple form.
- Stores reviews in the database via the backend API.
- Fully responsive design for mobile and desktop users.
- Displays error messages when geolocation fails or data cannot be fetched.
- Advanced search features (e.g., filters by specific amenities).
- Support for multiple languages.
- Enhanced map interactivity (e.g., draggable markers, dynamic routes).
- Backend: Django with Django REST Framework (DRF)
- Handles API endpoints for location data, filtering, and spot details.
- Frontend: React
- Displays maps, handles filtering, and manages user interactions.
- Integrated with backend APIs.
- Python 3.8+
- Node.js 16+
-
Navigate to the
backend/Directory:cd backend/ -
Create a Virtual Environment and Install Dependencies:
python -m venv env source env/bin/activate # Use `env\Scripts\activate` on Windows pip install -r requirements.txt
-
Set Up Environment Variables:
- Create a
.envfile in thebackend/directory. - Add the following content:
DJANGO_SECRET_KEY=your-secret-key GOOGLE_PLACES_API_KEY=your-google-api-key - Replace
your-secret-keywith a secure DjangoSECRET_KEY. - Replace
your-google-api-keywith the key from Google Cloud Console.
- Create a
-
Set Up the Database:
python manage.py makemigrations python manage.py migrate
-
Run the Django Development Server:
python manage.py runserver
-
Navigate to the
frontend/Directory:cd frontend/ -
Install Dependencies:
npm install
-
Start the Frontend Development Server:
npm start
To ensure a smooth and collaborative workflow, follow the guidelines in our CONTRIBUTING.md file.
Key highlights:
- Work on feature branches.
- Use descriptive commit messages and link issues to pull requests.
- Test your changes thoroughly before submitting a pull request.
- Frontend Developer: Soki Iwae
- Main responsibilities: Designing and implementing the user interface with React, TailwindCSS, and API integration.
- Backend/DevOps Developer: Anthony Em
- Main responsibilities: Backend functionality using Django, setting up Google Places API, and managing deployments.
This project is currently not licensed. For inquiries about usage or contributions, please contact us.
- Ensure sensitive data (e.g., API keys) is never committed to the repository.
- For further guidance on contribution and workflow, see the CONTRIBUTING.md file.
- If you encounter issues, feel free to raise them on the Issues page.