Ticitz - Development Phase Proposal - 4 Weeks
Ticitz - Development Phase Proposal - 4 Weeks
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.
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
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.
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.
Technical Specification
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.
{
"atolCertificateRequest": {
"type": "package-sc",
"leadPassengerName": "Name Of Lead Passenger",
"numberOfPassengers": 2,
"tripDetails": {
"destination": "Destination",
"nights": 7
},
"travelCompany": "Smith Travel",
"bookingReference": "1234"
}
}
Request Parameters:
{
"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.
We will provide Travelopedia access to a Retool app that displays all bookings made
using their specific API key.
1. Data Flow
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.
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
The system requires a sessions table in the database to store session data with the
following columns:
2. Backend Implementation
3. Frontend Implementation
Session ID Management:
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
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®ionId=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?