Tabi (旅: Japanese for “trip” ) is a booking application with support for push notifications and a small recommendation engine to help users find the best trip plan for their destination.
The application is built for the final year project at my university, and is composed of several backends and frontends.
System overview
Backends
The system is designed following a microservices architecture, each service is responsible for a specific functionality:
- tabi-booking: The main server of our backend, contains the logic for managing bookings.
- tabi-file: The service to connect to S3 for file storage.
- tabi-notification: The service implementing a CRON job for push notifications with Firebase.
- tabi-payment: The service integrating Paypal sandbox environment for executing transactions.
- tabi-ai: A service that provides APIs for planning trips, integrating a small recommendation system.
Frontends
For web apps, we have 2 pages: partner and landing. We also have a mobile app for users.
- tabi-partner: Main frontend of the application - web app for partners served as a platform to manage bookings and revenue for their accommodation services.
- tabi-landing: Landing page for the application.
- tabi-mobile: Mobile app for users.
Diagrams


Features
- Create, update, and cancel bookings in real-time.
- Receive push notifications for booking status changes and reminders.
- Pay securely via PayPal.
- AI-based trip planner that recommends destinations and itineraries.
- Partner dashboard with analytics and revenue tracking.
Recommendation system
The recommendation engine uses LangChain + Python scripts to suggest destinations based on user preferences and previous booking history, leveraging RAG (Retrieval Augmented Generation) to retrieve relevant information from a vector database.
For more details, please refer to the README of the tabi-ai repository.
Technologies
- Programming language: Golang, Python, Typescript.
- Framework: Serverless, Langchain, Flask, Antd, React.
- AWS services: Lambda, VPC, RDS, EC2, EventBridge.
- 3rd party APIs: Paypal sandbox, Firebase.
Local development
Details of each repository and instructions can be found in their respective README files.
Contributions
The project is a collaborative effort between me and my teammates back in 2024. Thank you for your support!