Swetha-Arul/trip-planner
Project Overview
Trip Planner
A web-based trip planning app with Google Maps routing, weather info, and PHP/MariaDB user authentication.
True Intent (AI Assessment)
A demo/portfolio web app that layers Google Maps and OpenWeather features on top of a small PHP/MariaDB auth backend.
README Accuracy
Notes
No malicious code detected. Real caveats are typical beginner-project issues: auth doesn't actually gate the map page, browser-side API keys are exposed by design, and the default DB password in docker-compose.yml must be changed by the user.
Trip Planner is a student/portfolio-style web application that combines Google Maps APIs (Maps, Places, Directions, Geometry) with the OpenWeather API to provide interactive route planning, nearby point-of-interest discovery, live GPS tracking, and voice-guided navigation. The frontend is plain HTML/CSS/JavaScript, while a small PHP backend handles user signup and login against a MariaDB database.
The problem it addresses is a common one: giving users a single interface for planning road trips that goes beyond raw directions by layering in weather awareness, filterable nearby places (restaurants, hotels, fuel stations, attractions), turn-by-turn narration, and a dark mode. Rather than integrating with a paid trip-planning SaaS, it stitches together free/consumer APIs and wraps them in a custom UI.
The intended users appear to be end users planning trips through a browser, but in practice this looks like an educational/demo project rather than a production service. It is deployed via Docker Compose (Apache + PHP container plus a MariaDB container) and the README notes AWS EC2 deployment without HTTPS. It is best understood as a coursework or portfolio project.
Architecturally, the browser loads static HTML pages (Mainpage, signup/login, map). Client JS calls Google Maps and OpenWeather directly using API keys defined in a local config.js. Auth forms POST to Backend/login.php and Backend/signup.php, which use vlucas/phpdotenv to read DB credentials, connect via mysqli with prepared statements, and hash passwords with password_hash/password_verify. On successful auth the user is redirected to map/map.html.
Notable observations: passwords are hashed and queries are parameterized, which is good. However, sessions are started but not actually used for access control — map.html is a static file reachable by anyone, so the 'auth' is cosmetic. API keys live in a client-side config.js and are exposed to the browser (the README correctly recommends restricting them at the provider). The docker-compose.yml ships with a default MYSQL_ROOT_PASSWORD of 'rootpassword' that users must remember to change.
| Languages | JavaScript, CSS, HTML, PHP |
| Runtime | PHP 8.2 (Apache) via Docker |
| Framework | None (vanilla frontend, plain PHP backend) |
| Database | MariaDB 10.11 |
| Package Manager | Composer (PHP) |
| Key Dependencies | vlucas/phpdotenv, Google Maps JavaScript API, Google Places API, Google Directions API, OpenWeather API, Apache, mysqli |
| Build Tool | Docker / Docker Compose |
| Test Framework | None detected |