一站式旅遊規畫網站,讓使用者輕鬆規劃分享行程
- 在五週內使用 SCRUM 框架,以 Express, React, PostgreSQL and AWS 開發部屬高度動態的全端 App,讓使用者可以規劃,共筆協作以及分享行程。
- 整合 Google Maps Platform API 路線規劃、自動完成、地圖等功能以及 OpenAI API 提供客製化行程推薦服務。
- 使用 Socket.IO 實作即時共筆、傳送景點位置,以及群組聊天功能.
- 利用 Redis 作為編輯互斥鎖,避免使用者編輯產生衝突,搭配心跳機制跟過期時間,避免例外狀況發生。
- 設計 35+ RESTful APIs 搭配不同層級的 JWT 驗證/RBAC使用者權限,讓使用者可以一選擇行程可見度以及參與者權限。
- 以演算法以 PostGIS 地理格式支援進行路線最佳化。
- 利用 GitHub Actions 進行自動部屬,將後端 TypeScript 伺服器以 Docker 打包後部署到 EC2,將前端部署至 S3 並以 Cloudfront CDN 加速。
- 使用 Vitest 進行 Unit Tests 及 Intergration tests.
A one-stop travel planning web app that enables users to explore, plan, and share trip itineraries.
- Leveraged Express, React, PostgreSQL and AWS to design, develop and deploy a dynamic full-stack SPA that enables users to plan, collaborate and share trips with others by simply dragging and dropping within a Scrum adhered 5-week timeframe.
- Integrated Google Maps Platform API for geocoding, routing, and autocomplete for the user, with OpenAI API providing tailored trip planning advice.
- Enabled real-time collaborative editing, marker sending, and group chat via Socket.IO.
- Utilized Redis for mutex locking during collaboration, thereby preventing editing conflicts among users, with additional expiry time and heartbeat mechanism, ensuring seamless collaboration without disruptions.
- Established 35+ thoroughly planned out RESTful API endpoints with various JWT authentication and Role-Based Access Control authorization levels that define trip creator, editor, and viewer permissions among public and private trips.
- Implemented a variant of nearest-neighbor algorithm for calculating coordinates stored using PostGIS geological data type, providing route optimization.
- Automated and streamlined a consistent CI/CD process using GitHub Actions to compile TypeScript server files, build and run Docker image on EC2, build client-side static files, upload to S3, and distribute to Cloudfront CDN.
- Devised and conducted automated testing for potential edge cases using Vitest.