0% found this document useful (0 votes)
77 views15 pages

Ticitz - Development Phase Proposal - 4 Weeks

The Ticitz Development Phase Proposal outlines functional requirements for a travel package management system, detailing features for user authentication, package creation, review, booking, and account settings. The proposal includes a project plan with estimated hours and costs for development, quality assurance, and risk margins, alongside milestones for implementation. Additionally, it describes the development process, including weekly planning, daily standups, and regular updates to ensure progress tracking and communication.

Uploaded by

shehbazx999
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views15 pages

Ticitz - Development Phase Proposal - 4 Weeks

The Ticitz Development Phase Proposal outlines functional requirements for a travel package management system, detailing features for user authentication, package creation, review, booking, and account settings. The proposal includes a project plan with estimated hours and costs for development, quality assurance, and risk margins, alongside milestones for implementation. Additionally, it describes the development process, including weekly planning, daily standups, and regular updates to ensure progress tracking and communication.

Uploaded by

shehbazx999
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Ticitz – Development Phase Proposal

Product Design
Figma Link

Functional Requirements:

Log-in
1. Admins and agents should be able to login using e-mail and password.
2. Admins access will be added manually through the Admin`s retool page.

Package Creation
1. Agents should be able to select a category - Hotels, Car Hire, Transfers and
Activities using tabs in the Search Page.
2. Agents should be able to input general search criteria, specified for each of the
categories.
a. For Hotels, it should be possible to enter the Destination or Hotel Name,
Check-in and Check-out date, number of adults/children, rooms and price
range
b. For Transfer, it should be possible to search by locations from and to, time
of pickup and number of travelers.
c. For Car Hire, it should be possible to search by pick-up and return location
and date, time and driver`s age.
d. For Activities, it should be destination, price range, people, date and
duration.
3. Agents should be able to press search and receive results from the API.
4. The search results are displayed based on the selected category (E.g. Hotels,
Activities) and the input criteria. Agents can additionally filter the search results
to find the most relevant.
a. For Holidays, it should be possible to filter by Property Type, Price Range,
Rating, Room Type, Amenities, Good for, Airline, Change and Class
b. For Hotels, it should be possible to filter by Property Type, Price Range,
Rating, Room Type, Amenities.
c. For Transfer, it should be possible to filter by transfer type, price range
and size.
d. For Car Hire, it should be possible to filter by fuel type, class, transmission
type, class, doors and seats, luggage capacity.
5. The agent should be able to view the supplier on the returned search result.
They should also be able to review the Name, location and pricing of the search
result, and any category-relevant details.
6. The agent should be able to view the number of search results returned by the
API.
7. An agent should be able to select multiple hotels, transfers, activities and car
hire and review their selections in the summary pane. The draft package is visible
throughout the process, allowing agents to keep track of all items.
8. An agent should be able to review the total cost of selected hotels, flights,
transfers, and car hire before finalizing the booking.
9. An agent should be able to proceed with the booking by clicking the "Proceed"
button after reviewing all selections and costs.
10. If an agent closes the window without completing the package, it will be saved
to All packages as a Draft.

Package Review
1. After selecting all necessary components, agents proceed to the "Review
Package" page. This page has an overview of the created package.
2. An agent should be able to check the availability of the selected bookings for
the specified dates. The system checks availability with suppliers for all package
components. Agent receives confirmation statuses or information on
non-available options.
3. An agent should be able to remove the unavailable option or edit the package.
4. An agent should be able to edit or remove selected hotels, or added services.
5. An agent should be able to add additional services like car hire, transfers, and
extras to the trip directly from the summary page. In this case, they will be
redirected back to package search and selection, with their completed package
and the ability to add transfer and car hire.
6. An agent should be able to apply a markup price to the total cost of the trip
before finalizing the booking, which will automatically change the Total pricing
and appear in the PDF export. A percentage of the change will be displayed.
7. An agent should be able to add a flight or hotel manually. A pop-up will appear
allowing to enter te main information about the item, and it will be reflected with
pricing and information in the invoice.
8. An agent should be able to see the total cost of the trip and input a markup
manually.
9. An agent should be able to proceed with the booking by clicking "Go to
booking".
10. An agent should be able to save the current trip plan as a draft to be finalized
later.
11. An agent should be able to send a quotation of the trip cost to a customer.
When the send quotation button is clicked, a pop-up will allow them to input an
e-mail to send to. If the download button is clicked, a pdf will start download
immediately.
12. An agent should be able to delete the entire trip package if necessary.
13. The agent should be able to name the package.
14. The agent should be able to update the prices in the package to the most recent
ones, by selecting “Update Prices”.
15. The agent can add a % markdown that will automatically change the Total pricing
and appear in the PDF export.

Booking and Vouchers


1. An agent should be able to view the booking details for a trip including all
category selections.
2. An agent should be able to confirm the booking of each item or all of them from
the booking page.
3. An agent should be able to view the status of each booking as either pending or
booked.
4. An agent should be able to issue ATOL certificates, invoices, and hotel vouchers
from the booking page. These will be auto-populated with trip details and
agency details inputted in settings.
5. An agent should be able to choose between booking a single package or multiple
contracts, or flight-only.
6. An agent should be able to see the total cost including the markup.

All Packages - Overview


1. An agent or owner should be able to search for packages using inputs in the
search bar.
2. An agent or owner should be able to filter packages by status, type, and date
range.
3. An owner should be able to additionally filter packages by agent name.
4. An agent or owner should be able to sort packages by the latest date or oldest
date.
5. An agent should be able to view the status of each package, identified as either
'Draft' or ‘Booked’.
6. An agent or owner should be able to edit draft packages by clicking the 'edit'
button.
7. An agent should be able to view confirmed packages in detail by clicking the
‘View’ button.

Account Settings
1. Only Owners have access to settings, not agents.
2. Owners can upload the agency logo, and add the agency name, email and
address.
3. Agents can upload their ATOL certification.
4. After edits, agents can save changes.
5. The logo and agency name will appear in the navigation sidebar.
6. The logo and agency name, as well as ATOL certification, will appear in the
vouchers when generated.

Agent performance
1. An owner should be able to view the performance metrics of agents including
complete bookings, active bookings, profit, and status.
2. An owner should be able to filter the performance data by status, and date
range.
3. An owner should be able to sort the performance data by the biggest profit or
other predefined criteria.
4. An owner should be able to access detailed information for each agent.

Agent management
1. An owner should be able to search for team members by name or email address
in the access settings tab.
2. An owner should be able to remove access for any team member from the
platform.
3. An owner should be able to add new team members to the platform by clicking
the 'Add member”' button.
4. An owner should be able to view a description of different roles by clicking the
'View Roles' button.
5. An owner should be able to change status from Agent to Owner(Admin) by
changing the selector beside them. In this case, a confirmation message will be
shown from the system.
Project Plan
1. Development Only: 563 hours / $19 705
2. Quality Assurance & DevOps: +20%: 676 hours/ $23 660
3. Risk Margins:
a. Low 10%: 743h / $26k / 45-50d / 9-10w
b. Medium 20%: 810h / $28.3k / 49-54d / 10-11w
c. High 30%: 878h / $30.7k / 54-60d / 11-12w
4. Milestones:
a. (1) Authentication and Package Creation - 422 hours / $14.7k / 5-6w
b. (2) Booking and Vouchers - 273 hours / $9.5k / 3-4w
c. (3) Administrative and Performance Tools - 115 hours / $4k / 1-2w
5. Extra:
a. Launch & Post-Launch Support: 1-3 months / 40-120h / $1.4k-$4.2k

Development Process
1. Weekly Planning: We start each week by setting clear goals and priorities, and
planning the work for the week.
2. Daily Standups: Brief internal daily meetings to track progress and address any
issues immediately.
3. Regular GitHub Updates: All development progress is pushed to GitHub in
real-time, allowing you to track changes as they happen.
4. Regular Staging Updates: We release updates to the staging environment
multiple times a week so you can test.
5. Weekly Slack Reports: You'll receive a detailed report every week, summarizing
progress, resources used, and any challenges faced.
6. Weekly Review Calls: Weekly calls with you to discuss progress, address
feedback, and plan the next steps.
Milestones

Milestone 1: Authentication and package creation

Objective: Set up authentication, platform navigation, package management,


and review functionalities.

Log-in
1. Admins and agents should be able to login using e-mail and password.
2. Admins access will be added manually through the Admin`s retool page.

Package Creation
1. Agents should be able to select a category - Hotels, Car Hire, Transfers and
Activities using tabs in the Search Page.
2. Agents should be able to input general search criteria, specified for each of the
categories.
a. For Hotels, it should be possible to enter the Destination or Hotel Name,
Check-in and Check-out date, number of adults/children, rooms and price
range
b. For Transfer, it should be possible to search by locations from and to, time
of pickup and number of travelers.
c. For Car Hire, it should be possible to search by pick-up and return location
and date, time and driver`s age.
d. For Activities, it should be destination, price range, people, date and
duration.
3. Agents should be able to press search and receive results from the API.
4. The search results are displayed based on the selected category (E.g. Hotels,
Activities) and the input criteria. Agents can additionally filter the search results
to find the most relevant.
a. For Holidays, it should be possible to filter by Property Type, Price Range,
Rating, Room Type, Amenities, Good for, Airline, Change and Class
b. For Hotels, it should be possible to filter by Property Type, Price Range,
Rating, Room Type, Amenities.
c. For Transfer, it should be possible to filter by transfer type, price range
and size.
d. For Car Hire, it should be possible to filter by fuel type, class, transmission
type, class, doors and seats, luggage capacity.
5. The agent should be able to view the supplier on the returned search result.
They should also be able to review the Name, location and pricing of the search
result, and any category-relevant details.
6. The agent should be able to view the number of search results returned by the
API.
7. An agent should be able to select multiple hotels, transfers, activities and car
hire and review their selections in the summary pane. The draft package is visible
throughout the process, allowing agents to keep track of all items.
8. An agent should be able to review the total cost of selected hotels, flights,
transfers, and car hire before finalizing the booking.
9. An agent should be able to proceed with the booking by clicking the "Proceed"
button after reviewing all selections and costs.
10. If an agent closes the window without completing the package, it will be saved
to All packages as a Draft.

Package Review
1. After selecting all necessary components, agents proceed to the "Review
Package" page. This page has an overview of the created package.
2. An agent should be able to check the availability of the selected bookings for
the specified dates. The system checks availability with suppliers for all package
components. Agent receives confirmation statuses or information on
non-available options.
3. An agent should be able to remove the unavailable option or edit the package.
4. An agent should be able to edit or remove selected hotels, or added services.
5. An agent should be able to add additional services like car hire, transfers, and
extras to the trip directly from the summary page. In this case, they will be
redirected back to package search and selection, with their completed package
and the ability to add transfer and car hire.
6. An agent should be able to apply a markup price to the total cost of the trip
before finalizing the booking, which will automatically change the Total pricing
and appear in the PDF export. A percentage of the change will be displayed.
7. An agent should be able to add a flight or hotel manually. A pop-up will appear
allowing to enter te main information about the item, and it will be reflected with
pricing and information in the invoice.
8. An agent should be able to see the total cost of the trip and input a markup
manually.
9. An agent should be able to proceed with the booking by clicking "Go to
booking".
10. An agent should be able to save the current trip plan as a draft to be finalized
later.
11. An agent should be able to send a quotation of the trip cost to a customer.
When the send quotation button is clicked, a pop-up will allow them to input an
e-mail to send to. If the download button is clicked, a pdf will start download
immediately.
12. An agent should be able to delete the entire trip package if necessary.
13. The agent should be able to name the package.
14. The agent should be able to update the prices in the package to the most recent
ones, by selecting “Update Prices”.
15. The agent can add a % markdown that will automatically change the Total pricing
and appear in the PDF export.

Milestone 2: Booking and Voucher functionality

Booking and Vouchers


1. An agent should be able to view the booking details for a trip including all
category selections.
2. An agent should be able to confirm the booking of each item or all of them from
the booking page.
3. An agent should be able to view the status of each booking as either pending or
booked.
4. An agent should be able to issue ATOL certificates, invoices, and hotel vouchers
from the booking page. These will be auto-populated with trip details and
agency details inputted in settings.
5. An agent should be able to choose between booking a single package or multiple
contracts, or flight-only.
6. An agent should be able to see the total cost including the markup.

All Packages - Overview


1. An agent or owner should be able to search for packages using inputs in the
search bar.
2. An agent or owner should be able to filter packages by status, type, and date
range.
3. An owner should be able to additionally filter packages by agent name.
4. An agent or owner should be able to sort packages by latest date or oldest date.
5. An agent should be able to view the status of each package, identified as either
'Draft' or ‘Booked’.
6. An agent or owner should be able to edit draft packages by clicking the 'edit'
button.
7. An agent should be able to view confirmed packages in detail by clicking the
‘View’ button.

Account Settings
1. Only Owners have access to settings, not agents.
2. Owners can upload the agency logo, and add the agency name, email and
address.
3. Agents can upload their ATOL certification.
4. After edits, agents can save changes.
5. The logo and agency name will appear in the navigation sidebar.
6. The logo and agency name, as well as ATOL certification, will appear in the
vouchers when generated.

Milestone 3: Administrative and Performance Tools

Objective: Implement administrative controls and performance monitoring.

Agent performance
1. An owner should be able to view the performance metrics of agents including
complete bookings, active bookings, profit, and status.
2. An owner should be able to filter the performance data by status, and date
range.
3. An owner should be able to sort the performance data by the biggest profit or
other predefined criteria.
4. An owner should be able to access detailed information for each agent.

Agent management
1. An owner should be able to search for team members by name or email address
in the access settings tab.
2. An owner should be able to remove access for any team member from the
platform.
3. An owner should be able to add new team members to the platform by clicking
the 'Add member”' button.
4. An owner should be able to view a description of different roles by clicking the
'View Roles' button.
5. An owner should be able to change status from Agent to Owner(Admin) by
changing the selector beside them. In this case, a confirmation message will be
shown from the system.

Retool App for managing agencies


1. The system should provide an ability to manage agencies through Retool
a. Add an account log-in and password
b. Add limitations for the agency (number of agents, packages)

Technical Specification

ATOL Certificate generation

We will generate ATOL certificates using the MyAtol API. MyAtol should expose an API
with similar request/response interfaces for ATOL certificate generation as specified
below.

Example Endpoint: POST https://myatol.co.uk/api/v1/atol-certificate

Example Request Body:

{
"atolCertificateRequest": {
"type": "package-sc",
"leadPassengerName": "Name Of Lead Passenger",
"numberOfPassengers": 2,
"tripDetails": {
"destination": "Destination",
"nights": 7
},
"travelCompany": "Smith Travel",
"bookingReference": "1234"
}
}

Request Parameters:

● type: Type of certificate (package-sc, mc, flight-only)


● leadPassengerName: Name of the lead passenger
● numberOfPassengers: Total number of passengers
● tripDetails:
○ destination: Trip destination
○ nights: Number of nights
● travelCompany: Name of the travel company
● bookingReference: Booking reference number

Example Response Body:

{
"atolCertificatePDF": {
"data": "BASE64_ENCODED_PDF_DATA",
"id": "UNIQUE_CERTIFICATE_ID"
},
"uniqueReference": "1234"
}

Response Parameters:
● atolCertificatePDF: Contains the ATOL certificate
○ data: Base64-encoded PDF of the certificate
○ id: Unique identifier for the certificate
● uniqueReference: Matches the bookingReference from the request

Notes:

● Clients must decode the base64 PDF data to display or save the ATOL certificate.
● Store the certificate's unique ID for future reference or retrieval.
● Use the uniqueReference to link the ATOL certificate with the booking.

Data Synchronization between Travelopedia and Tickitz

We will provide Travelopedia access to a Retool app that displays all bookings made
using their specific API key.

1. Data Flow

● Tickitz creates a booking using the Travelgenix API.


● Travelgenix returns the created booking, which is saved in the bookings table
with the relevant provider (ENUM value 'Travelopedia').

2. Retool Configuration

1. Database Setup
○ Create the bookings table in PostgreSQL with the specified schema.
○ Define the provider column as ENUM with values including 'Travelopedia'.
2. Retool Configuration
○ Set up Retool and connect it to the PostgreSQL database.
○ Develop a Retool app dashboard to display bookings filtered by the
provider ENUM value 'Travelopedia'.

Notes
This setup enables Travelopedia to access and view all bookings made with their API key
through the Retool app, ensuring real-time synchronisation and improved data
management.

Session-Based Search Optimization System

We will implement a session-based search optimisation system, storing session data for
each user and search type to improve efficiency and user experience by reducing
redundant searches

1. Database Schema Design

The system requires a sessions table in the database to store session data with the
following columns:

● session_id: Unique identifier for each session.


● user_id: Identifier for the user.
● session_type: Type of the session (e.g., search type).
● request_params: Parameters of the search request.
● created_at: Timestamp when the session was created.
● updated_at: Timestamp when the session was last updated.
● last_accessed: Timestamp when the session was last accessed.

This schema ensures efficient management and renewal of sessions.

2. Backend Implementation

1. Check if a session already exists for the given session_id


2. If a session exists, compare the new request parameters with the stored ones.
3. Update the session if parameters have changed or if the session data is older
than a specified expiration period.
4. If no session exists, create a new session record.

3. Frontend Implementation

Session ID Management:

● Store the session_id for each search_type in client storage


● On page load, check for the presence of a session_id
● If a session_id is found, pass it to the backend to fetch the stored search
results.

Search Requests:

● Read the input parameters and the session_id from the URL when a user initiates
a search.
● Send a POST request to the backend with the search parameters and session_id.
● Update the URL with the new session_id if a new session is created.

4. Expiration Policy

Define the expiration time for search data relevance (e.g., 30 minutes). During session
renewal, check if the last_accessed time exceeds the expiration threshold. If it does,
consider the session data outdated and prompt a new search.

Technical Stack

1. Frontend: React, TypeScript


2. Backend: Node.js, Nest.js
3. Database Management: PostgreSQL/Supabase
4. File Storage: Supabase
5. Authentication: Supabase
6. Deployment: Digital Ocean
7. CI/CD Pipeline: GitHub Actions for automating testing, building, and deploying
the application

Questions

1. Is the MyAtol API ready for generating PDF files for Atol certificates? Or should it
be done from scratch on our side?
2. Is it necessary to be able to save filters and input parameters in the URL, as
Expedia does?
a. https://www.expedia.com/Hotel-Search?destination=Warsaw, Masovian
Voivodeship,
Poland&regionId=3765&latLong=52.23521,21.00887&flexibility=0_DAY&d1=
2024-06-05&startDate=2024-06-05&d2=2024-06-10&endDate=2024-06-1
0&adults=2&rooms=1&theme=&userIntent=&semdtl=&useRewards=false&s
ort=RECOMMENDED
3. Did you ask Travelopedia if it would be convenient for them to view all bookings
made via their API keys in the Retool app as we discussed on the last call (and
mentioned in the technical specification), or do you/they see another
implementation option?

Prepared by Softcery for Charley Cohen. June 4, 2024.

You might also like