Repository navigation
Releases
v0.5.1
We updated the current backend (in version 0.5.1) through this version by fixing some issues:
- Fixed the problem where the avatar is not updated in the profile page and on the Navigation bar (top-right corner of the page) after users changes it and reload the page.
- Enhanced Google OAuth2 authentication flow with detailed comments and error handling
v0.5.0
Introducing the fifth version of Bus Ticket Booking System. We spent more time on this version to fix some issues in the last version and added some more features to the system:
- Created AI chatbot assistant to help customer get information of the trips, book trips with specific date, seat(s) and passenger information, answer common questions about policies, routes, and booking process,...
- Created review system for customers to rate the trip and write a review for the trip.
- Added Facebook OAuth and Phone Number authentications for more log-in options
- Modified the trips and routes sorting.
- Added the profile page that allows ussers to change their account's information and avatar.
- (and some more feature...)
- Added the unit tests and integration tests for all the features and functions (up to this version).
v0.4.0
Introducing the next version for the development of our project. In this update, we added some features here:
- Payment is now available when users want to book a ticket, using PayOS for creating payment service and allows users to use their banking account to pay.
- Refactored the email service by using SendGrid to send transactional emails, also refactor the content in the confirmation email (when being sent to users) by using HTML/CSS template, and adding a QR-code for check-in.
- Created scheduled job system to send reminder emails/SMS before trip departure.
- Added feature that allow users to modify passenger details and change seats (if available).
- Added background job to automatically cancel unpaid bookings after timeout.
- Implemented booking analytics and reporting (for Admin only).
- Update the mock-data in database by adding or changing trips, buses, seat-layouts,... data in some tables.
v0.3.1
We fixed some problems found in the current version 0.3.0:
- Fix the problem where Users after successfully book a ticket cannot receive eticket via their email, since the backend cannot fetch the information about the email used to create account.
- Fix the problem where the type of "amount" and "price" columns (or similar to these) in some table are set to decimal, results in wrong calculation of total price when booking a ticket (as displayed on the page).
- Fix the problem where the seat status was not updated after a successful booking.
- Added handlers to handle seat booking and seat cancelling.
- And some other minor bugs...
We also renamed all the documents (for uppercase to lowercase) and moved them into the docs folder so that we can manage our code and documents. For more information about our system, please refer to this folder.
v0.3.0
The third version of Bus Ticket Booking System is now available (still in development by the way). We introducing some new APIs and modules:
- Booking module: Including the functions to get the booking information, create or delete booking. It also have the functions to send the email to users or guests about the booking information, and to download the eTicket for them.
- Seat-layout module: Including the functions to create, modify, get or delete any seat layout on a bus. Some functions are only accessible by Admin.
- Seat-status module: Including the functions to create, modify, get or delete any status of a seat, some of them are only accessible by Admin.
v0.2.0
Introducing the second development version of our project. In this version, we implemented some APIs:
- GET
/trips/search: Search and return the information of trips based on origin and destination, date. - GET
/trips/{:tripId}: Get the detail info of any trip based on the tripId - (Admin only)
GET/POST/PUT /trips: For admin page only, get all the trips or create new trip or update any trip - (Admin only)
GET /trips/admin/{:tripId}: For admin page only, get the detailed info of any trip (this API is changed to not be conflict with the similarAPI /trips/{:tripId} - (Admin only)
GET /trips/available-buses: For admin page only, get the available buses for a specific time slot - (Admin only)
GET /trips/bus/{:busId}/schedule: For admin page only, get bus schedule for a specific date range - (Admin only)
GET /trips/route/{:routeId}/schedule: For admin page only, get route schedule for a specific date range - (Admin only)
GET /trips/check-availability/{:busId}: For admin page only, check if a bus is available for a specific time slot - (Admin only)
POST /trips/assign-bus: For admin page only, assign a bus to a route with conflict checking - (Admin only)
GET /trips/conflicts/{:busId}: For admin page only, get conflicting trips for a specific bus and time slot
v0.1.0
Introduce our first release version (still in development) with some features:
- Authentication: Implemented inside "auth" module. Include controller and service for sign up, login, and logout feature, with JWT Authentication and Google OAuth.
- Authorization: Using Role-based Access Control, including role guard and decorator, and "admin" module that includes function only for ADMIN role.
- Some unit tests for both "auth" and "admin" module, including both controller and service.