ParkQuest is a user-friendly web application designed to help users explore and plan trips to national parks. It offers intuitive tools for browsing park details, discovering available activities, viewing campground options, saving favorite parks, tracking trips, writing and managing reviews, and more—making outdoor adventure planning seamless and enjoyable.
-
User Authentication
-
Dashboard
-
Search Parks
-
Park Details
- View detailed information about a specific park, including:
-
Campgrounds
-
Hiking Trails
-
Favorite Parks
-
Trip Management
-
Park Reviews
- View and submit reviews for parks.
- Ratings are displayed (1-5 stars).
- Edit or delete reviews as needed.
- Admins can manage and moderate all reviews.
-
Admin Panel
- View all users registered in the system.
- Change user roles (toggle between Admin/User).
- Delete user accounts (cannot delete own account).
- Manage reviews and other critical roles.
-
User Management
- Toast notifications for actions like adding favorites, submitting reviews, handling errors, and more.
- The application is designed to work across different devices (desktop, tablet, and mobile).
- Java
- Spring Boot
- National Park Service API: Provides access to parks and campground data.
- React with hooks.
- Vite: A fast development and build tool.
- CSS: For styling.
- Axios: For HTTP requests.
- react-router-dom: For client-side routing.
- chart.js: Renders temperature charts in trips.
- react-icons: Adds intuitive icons to the UI.
- react-hot-toast: Displays notifications.
-
Create Database Schema
CREATE DATABASE park_quest; CREATE USER 'your_user_name'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON park_quest.* TO 'your_user_name'@'localhost'; FLUSH PRIVILEGES;
-
Update Backend Configuration
Edit theapplication.propertiesfile insrc/main/resources:spring.datasource.url=jdbc:mysql://localhost:3306/park_quest spring.datasource.username=your_user_name spring.datasource.password=your_password spring.jpa.database=MYSQL spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect spring.application.name=parkquest-backend server.port=8081
-
Add Environment Variables
Set up the National Park Service API key inapplication.properties:api.key=your_national_parks_service_api_key
-
Clone the repository
git clone https://github.com/W-PTWD-April-2024-Liftoff/group-9 cd parkquest-backend -
Install dependencies Use Gradle:
./gradlew build
-
Run the Backend Start the Spring Boot application:
- Open
ParkquestBackendApplication.javain your IDE and run the main method. - The backend will run at
http://localhost:8081.
- Open
-
Navigate to Frontend Directory
cd parkquest-frontend -
Install Dependencies
npm install
-
Add Environment Variables
Create a.envfile in the root of thefrontendproject:VITE_PARKS_API_KEY=your_national_parks_service_api_key
-
Run the Frontend
npm run dev
The application will run at
http://localhost:5173.
Backend: Host the backend using services like Heroku or AWS. Make sure the database credentials and API key are securely configured.
Frontend: Deploy the React app using platforms like Netlify, Vercel, or Firebase Hosting.
- No known issues at this time.
- National Park Service API: Provides access to parks and campground data.
- LaunchCode Web Development Program (April 2024 Cohort) for structured learning.















