{"id":23650082,"url":"https://github.com/hebahamdan2/travel-planner-app","last_synced_at":"2026-05-05T22:33:14.755Z","repository":{"id":269569224,"uuid":"847936310","full_name":"HebaHamdan2/travel-planner-app","owner":"HebaHamdan2","description":"Travel Planner App is a Udacity Nanodegree project for managing trips. It offers weather updates using Geonames and Weatherbit APIs and fetches destination images via the Pixabay API.","archived":false,"fork":false,"pushed_at":"2024-12-24T12:56:00.000Z","size":888,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-20T00:12:05.271Z","etag":null,"topics":["geonames-api","pixabay-api","sass","travel-planner","udacity-frontend-nanodegree","weatherbit-api","webpack"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HebaHamdan2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-26T20:34:58.000Z","updated_at":"2025-02-21T01:22:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"11e5a18a-6d0a-45fd-a7d2-f19b0b87ce4c","html_url":"https://github.com/HebaHamdan2/travel-planner-app","commit_stats":null,"previous_names":["hebahamdan2/travel-planner-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HebaHamdan2/travel-planner-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HebaHamdan2%2Ftravel-planner-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HebaHamdan2%2Ftravel-planner-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HebaHamdan2%2Ftravel-planner-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HebaHamdan2%2Ftravel-planner-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HebaHamdan2","download_url":"https://codeload.github.com/HebaHamdan2/travel-planner-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HebaHamdan2%2Ftravel-planner-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259934795,"owners_count":22934330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geonames-api","pixabay-api","sass","travel-planner","udacity-frontend-nanodegree","weatherbit-api","webpack"],"created_at":"2024-12-28T15:51:09.001Z","updated_at":"2026-05-05T22:33:14.728Z","avatar_url":"https://github.com/HebaHamdan2.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Travel Planner App\n\nThe **Travel Planner App** is a project developed as part of the Udacity Nanodegree program. This app allows users to add, store, and manage their trips, whether they are today, upcoming or past trips. It features the ability to view weather forecasts for departure dates using the  [Weatherbit](https://www.weatherbit.io/api/) API and to get images of destinations using the [Pixabay](https://pixabay.com/service/about/api/) API. The application is built with many web technologies and includes both client-side and server-side testing.\n\n![Screenshot (1281)](https://github.com/user-attachments/assets/e7c9fe8b-d266-441c-97af-e1f476f39641)\n\n\n## Features\n\n- **Add and Manage Trips**: Users can add, view, and delete trips.\n- **Weather Forecast**: Displays weather forecasts for the departure date using the Weatherbit API.\n- **Destination Images**: Fetches images of destinations or countries using the Pixabay API.\n- **Local Storage**: Trips data is stored in the browser's local storage, allowing data persistence across sessions.\n- **Alerts**: Utilizes SweetAlert2 for interactive and user-friendly alerts.\n\n## Tech Stack\n\n- **Frontend**: \n  - **Sass**: For styling the application.\n  - **Webpack**: For bundling and managing frontend assets.\n  - **Babel**: For transpiling modern JavaScript.\n  - **Service Worker**: For enabling offline functionality and caching assets.\n- **Backend**: \n  - **Express**: For setting up the server and handling API requests.\n  - **dotenv**: For managing environment variables.\n  - **cors**: For enabling Cross-Origin Resource Sharing.\n- **Testing**: \n  - **Jest**: For unit and integration testing.\n  - **Supertest**: For testing HTTP requests.\n- **APIs:**\n  - **Weatherbit API:** To fetch weather data based on latitude and longitude obtained from the Geonames API.\n  - **Pixabay API:** To get images for destinations or countries.\n  - **Geonames API:** To retrieve latitude and longitude for locations.\n    \n- **Alerts**: \n  - **SweetAlert2**: For displaying stylish alerts.\n## Node Version\n\nEnsure you are using Node.js version `v18.16.1` for compatibility:\n\n```bash\nnode -v\n```\n## Installation\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/HebaHamdan2/travel-planner-app.git\n   ```\n2. **Install dependencies:**\n   ```bash\n   npm install\n   ```\n3. **Set Up Environment Variables**\n- Create a .env file in the root of your project directory with the following content:\n   ```bash\n     PIXABAY_API_KEY=your_pixabay_key\n     WEATHERBIT_API_KEY=your_weatherbit_key\n     GEONAMES=your-Geaonnames-username\n\n## Scripts\n- Start the Server:\n```bash\nnpm start\n```\n- Build for Production:\n```bash\nnpm run build-prod\n```\n- Build for Development:\n```bash\nnpm run build-dev\n```\n- Run Server-Side Tests:\n```bash\nnpm run test:server\n```\n- Run Client-Side Tests:\n```bash\nnpm run test:client\n```\n- Run All Tests:\n```bash\nnpm test\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhebahamdan2%2Ftravel-planner-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhebahamdan2%2Ftravel-planner-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhebahamdan2%2Ftravel-planner-app/lists"}