TripPin

Avatar of 李奇軒 Chi-Hsuan (Rick) Li.
Avatar of 李奇軒 Chi-Hsuan (Rick) Li.

TripPin

Back-End / Full-stack Developer
Taipei, Taiwan

TripPin

系統架構圖

影片展示

拖曳編排行程

一站式旅遊規畫網站,讓使用者輕鬆規劃分享行程 - 在五週內使用 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.
Avatar of the user.
Please login to comment.

Published: Jan 20th 2024
36
8
0

Tools

cloudflare
Cloudflare
javascript
JavaScript
typescript
TypeScript
amazonwebservices
Amazon Web Services
redis
Redis
postgresql
PostgreSQL
nodejs
Node.js
react
React

Share