{"id":27471079,"url":"https://github.com/vivekshaarma/qtrip-dynamic","last_synced_at":"2026-04-10T15:46:14.068Z","repository":{"id":288010201,"uuid":"965927508","full_name":"vivekshaarma/qtrip-dynamic","owner":"vivekshaarma","description":"QTrip is a travel website aimed at travellers looking for a multitude of adventures in different cities.","archived":false,"fork":false,"pushed_at":"2025-04-15T04:23:09.000Z","size":272,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T05:26:10.945Z","etag":null,"topics":["conditional-rendering","css3","es6","event-handling","html5","javascript","localstorage","responsive-design","rest-api"],"latest_commit_sha":null,"homepage":"https://qtrip-dynamic-vivek-frontend.netlify.app/","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/vivekshaarma.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":"2025-04-14T06:14:09.000Z","updated_at":"2025-04-15T04:23:12.000Z","dependencies_parsed_at":"2025-04-15T05:29:41.632Z","dependency_job_id":"40d0e2d5-19d4-4a78-b084-578ce1422e86","html_url":"https://github.com/vivekshaarma/qtrip-dynamic","commit_stats":null,"previous_names":["vivekshaarma/qtrip-dynamic"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekshaarma%2Fqtrip-dynamic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekshaarma%2Fqtrip-dynamic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekshaarma%2Fqtrip-dynamic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekshaarma%2Fqtrip-dynamic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vivekshaarma","download_url":"https://codeload.github.com/vivekshaarma/qtrip-dynamic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249182786,"owners_count":21226123,"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":["conditional-rendering","css3","es6","event-handling","html5","javascript","localstorage","responsive-design","rest-api"],"created_at":"2025-04-16T01:38:41.953Z","updated_at":"2026-04-10T15:46:09.042Z","avatar_url":"https://github.com/vivekshaarma.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QTripDynamic\r\n\r\n# During this project\r\n\r\n- Created web pages using HTML and CSS and made them dynamic using JavaScript\r\n- Improved UX with multi-select filters and image carouselsImplemented conditional rendering of page elements\r\n- Implemented conditional rendering of page elements\r\n- Utilized localStorage to persist user preferences on the client side and facilitated reservation form submission using fetch API.\r\n- Deployed the website using Netlify for Frontend and Render for Backend.    \r\n\r\n# QTripDynamic Architecture Diagram\r\n![Layered Architechture](https://directus.crio.do/assets/5ea9a041-3677-44dd-be8c-2f41b84977e9?)\r\n\r\n# 1. Fetch data using REST API and dynamically render landing page\r\n  ### Scope of Work\r\n     - Retrieved cities data from the backend REST API endpoint using Javascript’s Fetch API\r\n     - Created HTML for the cities grid with Bootstrap class to add responsiveness\r\n     - Implemented logic to dynamically plug in city data to the Landing page’s DOM\r\n ### Skills used\r\n     - HTML, CSS, JS, Bootstrap, REST APIs, JSON, DOM Manipulation, cURL\r\n\r\n ### Basic Overview\r\n ![secure-api-endpoints](https://directus.crio.do/assets/2ea56c1c-96f7-4a02-ae6f-6889bad99423?)\r\n\r\n# 2. Implement the adventures page with multi-select filters\r\n  ### Scope of Work\r\n      - Fetched adventures data for the city by invoking the backend API from the page URL’s query parameter\r\n      - Inserted HTML populated with API response data to the adventure page’s DOM\r\n      - Implemented logic to add both multi-select and single-select filters\r\n      - Added logic to persist the filters selected by the user in the browser’s localStorage\r\n ### Skills used\r\n     - DOM Manipulation, Bootstrap Flex, Bootstrap Spacing, ES6, localStorage\r\n     \r\n ### Basic Overview\r\n ![secure-api-endpoints](https://directus.crio.do/assets/f6f858c6-409b-4a0f-bbbd-8bc8b8c59739?)\r\n\r\n\r\n# 3. Create the Adventure details page with reservation support and the Reservations page to show all reservations\r\n  ### Scope of Work\r\n     - Added a sleek image carousel using Bootstrap2\r\n     - Implemented reservation logic by using Fetch API to send a POST request to the backend, on form submission\r\n     - Conditionally rendered the “Sold out” panel and the reservations page based on the API response\r\n ### Skills used\r\n     - JS, Bootstrap, Conditional rendering, Bootstrap Carousel\r\n     \r\n ### Basic Overview\r\n ![secure-api-endpoints](https://directus.crio.do/assets/dd79cabf-8e7d-49a1-bf5c-9013ceafa19a?)\r\n ![secure-api-endpoints](https://directus.crio.do/assets/dbe1d87d-b815-47dd-929a-1f63a57b58a0?)\r\n ![secure-api-endpoints](https://directus.crio.do/assets/26d7adc8-3889-411f-9409-0eeef8b4360d?)\r\n     \r\n# 4. Deploy the QTripDynamic website\r\n  ### Scope of Work\r\n     - Deployed the QTripDynamic to render\r\n     - Configured the QTrip dynamic frontend to use the render deployed backend\r\n     - Deployed the QTrip dynamic frontend to Netlify\r\n ### Skills used\r\n     - Deployment, Netlify\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivekshaarma%2Fqtrip-dynamic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvivekshaarma%2Fqtrip-dynamic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivekshaarma%2Fqtrip-dynamic/lists"}