To Do: AX Tools (Pending)

Priority Project #
3 AX Tools #: 15
2.93

Private Plus taxi

  • Pricing, there should be a discount for the first taker as they are taking the no-share risk. 
Pending
3.01

Shared Transfers

Conceptual overview:

  • The Shared Service is a bus service from LeChable to Verbier (about 10mins drive) that can be shared by multiple passengers allowing people to complete their journey without hiring an expensive taxi
    •  It is a bus with up to 13 seats.  
    • LeChable is where the train arrives, at the bottom of the mountain. Verbier is the mountain village where the skiers stay.   
      • Uphill (arrivals, at start of holiday):  LeChable→ Verbier 
      • Downhill (departures, at end of holiday): Verbier →  LeChable
  • There is a Shuttle (ie a bus available) for every train that starts/ends at LeChable that goes to/from GVA.  Typical tourist from, say London….
    • Arrival:   
      • Flight: London→ GVA
      • Train:  GVA→ LeChable
      • Shuttle bus:  LeChable→Verbier  (uphill)
    • Departure:   
      • Shuttle bus:  Verbier→LeChable (downhill)
      • Train: LeChable → GVA
      • Flight: GVA→ London
    • Therefore
      • The uphill shuttle (LC→V) is derived from the fight arrivals and then matched train GVA→LC (working forward from the flight arrival time)
      • The downhill shuttle (V→LC) is derived from the fight departures and then matched train LC→GVA (working backwards from the flight departure time)
  • Each passenger is assigned to their best shuttle according to their flight details.  See flight_trip index - which assigns them to the best train time.
  • Let's first assume infinite capacity for the Shuttle and then consider how to limit the seats.

Assigning Transfers to a Shuttle Bus 

  • A “Shared” Transfer (in a booking) needs to be assigned to a shuttle 
  • This is important as there are limited seats and the shuttle driver needs to know who they are picking up and where they are taking them to
  • Also, I want to be able to see the list of shuttles and how many seats are booked (and free = 13 - # booked), as during the day as flights are late/early people may need to be bumped to earlier/later shuttles.   This should only applies to the Arrivals (Uphill) shuttles as  people will take their chosen Shuttle on the Departures (downhill) in time to catch their planes (ie we are ‘upstream’ of any flight delays).  But we should be able to bump people up down the shuttles schedule easily/quickly and indeed enable the user to do that themselves (we should send them an email/whatsapp when we think they are on their train and confirm etc). 

Pricing

  • There is also the pricing of Shared to consider
- Pending
3.02

Shuttle: Edit Screen

  • Remove at the bottom the SBBTrain dropdown list and the Uphill/Downhill field.  DONE
  • List of Transfers includes ALL trips (PT and Shared), admittedly restricted to that day.   But doesn't show name of Passenger, or Address.  DONE??
  • When you edit a shuttle and press Save, it should go back to the Shuttle page from that shuttle (ie 26-8-2025 in this case).  DONE??

 

Pending
3.04

Customer Emails Fragment

  • In the first section of the email, where you give the reference number (e.g. “Booking reference: VBC-1234”), create a link from the reference number, so when the client replies to the email we can launch the booking from the email
    • It won't work for clients or be a security risk:  For users (ie clients) without Admin/Staff access the link shouldn't work, and it should just take them to the homepage 
    • For office/admin, it should open the booking
  • Create a new fragment for Baby/Child seats.  If booking has a Baby or a Child then add the fragment to the booking.  Unlike the other fragments the need for it is not a function of Type (Shared/Private) or Destinations, but rather the existence of a baby/child seat

Customer Booking Confirmation

  • At top include status - Confirmed/Enquiry/Cancelled
  • Should include EVERYTHING in the booking that the customer gives us (not driver or actual pick up times)
    • Flight details (Airline, Flight Number, and times (arrival times and dep airport for arrivals, opposite for departures)
    • Chalet name, address and our link too (which should have the map once we had logged all the locations)
  •  Add in the Fragments any Destination specific PickUp or DropOffInstructions (Private Only - Not Shared)
  • And finally add all relevant Fragments at end of Confirmation (eg Company Footer etc)

 

Customer Emails Template

  • New email template required.  It will be used for Shared passengers (arrivals only -ie Uphill).
  • The purpose of the email is to check that they are on the expected train, and if not to get the information as to what train they are actually on. 
  • Roughly, the email should say "We are expecting you on the [11:17] train from GVA to LeChable.. Please click below to confirm you made that train, or if you did not make that train, please confirm which train
    • And present a list of possible other train times.  That button should then reassign the client to the correct train (and pick up shuttle).
      • There is a case where there is no space (or not enough space) available on the adjusted bus - and if so we need to think about the solution for that.  In a sense that is not our problem as they missed their original shuttle
      • Furthermore we should create a public page showing the number of seats available on the buses. (I worry that this gives competitive info away, but let's build it for now
Pending
3.05

Ops Warnings

  • Build out a list of Transfers (not bookings) where certain aspects are unclear on the booking
    • Accommodation unknown
    • Flight unknown
    • Follow-up flag marked 
    • Missing client emails or phone numbers
    • Phone number check
      • Email link to client for confirmation
- Pending
3.06

New booking - from email 

  • Ability to ‘suck in’ an email into a Booking.
  • The contents of the Email  (include To: From,  Date, cc, Subject and the main body) should be brought into a single field which is appended at the bottom of the Booking screen (full width of screen and deep).
  • The email from field should populate the Booking.Email field.  
    • Think of it this way.  Say we get the following email from john.smith@gmail.com “Subject:  Reservation request for Smith family…    Body: Hello Alpinexpress,  I would like to book 2 transfers.  the first on 1 March 2026, picking up at Geneva airport. We are on EZ 1234 from gatwick. we need to go to Chalet Makini in Verbier.  We are 3 people.    And we are returning a week later on the flight EZ23456 at 11.30am.   thank you, John Smith +44 758877444444”
  • We should be able to see the full email (not just the body, but also the email address of sender, date/time and subject) and then we can make sure we have uploaded the email accurately and kept a record of that in the booking.
  • In truth it is really for auditing and to help the booker convert an email to a set of transfers 
  • Systematically, it needs to pull in the From, CC, Subject and Body fields from the email, and format nicely into a single field.   Then it should fill name the client email with the senders email.  That's it.    Does that make sense? 
  • We have some of this functionality already - just not bringing it into a new booking. 
  • The process of adding a new booking should move the email to DONE directory 
  • In Company Details we have fields that define where to look in the email for new bookings and where to place them once uploaded. And the email login and password - do you remember that?
- Pending
3.08

Calendar page

  • Develop a calendar page with the same look/feel as alpinexpress.com
Pending
3.09

Email received into the mailbox

  • Ability to import in an email into a Booking.
  • Populates the “EmailImport” field with the content
  • Popluates Client-email from the sentFrom field of the email
  • Will need to save in the website the email login and password and the directory (i.e. "_Taxi Bookings To Be Uploaded”)  to look into. 
  • When the import is done, it moves the email to a new directory (i.e. "_Taxi Bookings Uploaded”)
Pending
3.09

Driver's page 

  • The driver's schedule should detail THEIR trips for the day and allow them to move forward/back to future days. 
    • Background colours to represent past, tomorrow, today, future 
  • Links to helpful notes.
  • Launch the “Meet & Greet” page for airport/train pickups with the client details/affiliate logo
  • Buttons to register events
    • Non-transfer
      • Driver wake-up / Awake
      • Left home
    • Transfer specific
      • At pickup (including GPS location)
      • ‘Found client’
      • Leaving now
      • Arrived
      • WhatsApps/emails to clients
  •  Essential that this page is optimised for mobile.  Should also be the login-direction for users that are Drivers
Pending
3.10

Resort Contacts

  • In resort contact entity, add a field called “defaultAccommodation” ,  This is a relation field, referencing the Accommodation entity. And restricted to the list of the accommodations for the resort contact's relevant affiliate
  • Create a view (launched from the Affiliates index - I have created the button created already - see “Host/Chalet” under Assignments) that should create a view a given affiliate, the list of the affiliate's accommodations and the Resort contacts linked to each accommodation.  
    • This may need to be shuffled around over time., so also show the Resort Contacts that are ‘orphans’ (ie no associated Accommodation)
    • Notes an accommodation may have more than one Resort Contact assigned to it
      • Make this easily editable - question,  can we drag a resort contact onto an accommodation?
      • It may be we need to make a time dimension to this, but let's cross that bridge later
Pending
3.11

Background/rational

  • Taxi companies and individual taxi drivers all share the same software and I will be able to see across the various competing taxi drivers and re-allocate trips or new trips to whoever is best placed to offer them.
    • In truth this is to match drivers who are going back empty with a customer who needs taking
    • Do you think this makes sense that there are [20-50] taxidrivers sharing the same database -or should i clone it?
  • Offer each taxi driver their ‘own’ website, so they can give their clients that site and book trips there themselves  (as an incentive to use the system). Assume  there are 50 ‘individual’ drivers. 
    • Can I control 50 x CMS inputs centrally (ie each CMS page would need to be linked to a taxi driver)
    • Can I point their own URL to my code (eg. www.johnstaxi.com) ?
    • So in each Partner company I would include their URL link if they are adopting my system
  • Intro fee for referrals
  • New drivers sign up and need to send bank details, driving license and car details
  • For last min bookings, the driver's location is tracked in their response
  • For all bookings the driver's time at location is tracked to prove they were on time and to whatsapp the customer

 

Pending
3.13

Management: XLS exports:

  • Transfers 
  • Bookings
  • Driver transfers
  • By Affiliate
  • By Private/Private+/Shared
  • Accommodations
  • Revenue reporting
  • Include reports by CreatedBy/CreatedOn
  • Work out how to handle view the revenue comparison across seasons
  • Control start date from an input in Systems Settings
    • Perhaps have a single button that opens multiple versions 
  • Create a service that count/revenue of all private/shared transfers by Client Name (in Client list)
- Pending
3.13

Flight scraper

Populate Kayak data

  • Add a button (under Actions) that ROLE_ADMIN can run to populate flights (Kayak) for all active airports serving GVA, for a period of dates. 
    • Use same date schedule as in the Settings

Populate GVA.CH data

  • On morning of T+1, run the GVA.CH scrape for ‘tomorrow’, on all flights
    • This is a one-off check, mainly to confirm that the scheduled times from Kayak match the times from gva.ch.  ie ScheduledDepartureTimeGvach === ScheduledArrivalTimeGvach
      • Chron: Run at 8am, on T+1 (ie on Monday 8am, run Tuesday's GVA.CH Overview and Details flight scraper) 
  • Throughout T+0, the ‘detailed' refresh should run on “selected” individual flights, where the criteria for selection is:
    • Arrivals:
      • actualArrivalTime is null and
      • scheduledArrivalTimeGvach is after ‘now’ - 1hour 
    • Departures
      • actualDepartureTime is null and
      • status is not cancelled
      • scheduledDeparturelTimeGvach is after ‘now’ - 1hour 

Code-share

  • Code share is no longer a relational field (linked to FlightTrips). 
  • The Codeshare entity has a flightNumber and the record stores the associated other flights. 
    • This enables mutliple flightTrips with the same flightNumber to be linked to the CodeShare
      • So the determination has to be a lookup on a matching flight number
  • The objective is to combine multiple entries for the same flight and return the code-share data in the flight details in the transfer bookings (so a user can search for their flight by any of the flight numbers)
  • Check the scrape functionality on the "Operated by" to identify “child” flights (ie the ones that are going to be deleted)
  • Establish a view  of all flights where there are more than one flight departing at the same time to the same location.
  • Build up a list of code-shares -   question, the gva.ch notes scrape concatenates the flight numbers.  Should we maintain that array or separate into individual code-share identifiers - which will allow us to identify ones to delete?)
  • Write a service that identifies the duplicates and delete
- Pending
3.16

Taxi partners

There are different levels of Partners

  • “Independent drivers” who only have 1 car and work for themselves
    • Can login and accept available trips 
  • Larger companies with multiple cars and multiple drivers

Trips to Outsource view

  • Create a "Available trips” 
    • Understand the starting point of each driver and attempt to offer pairs of trips that start/end at their chosen venue
    • But show all trips in case they have a natural offset
    • Press button to accept (how do we refresh first?
Pending
3.16

New booking 

Client search

  • The client dropdown list of ‘matching’ clients only displays the client name and their email address. The phone number is not displayed 
  • However, you can search by tel number, even if not displayed
  • If you select a client in error, perhaps there could be a quick way to reset? 

 

Chalet address

  • If a selected accommodation is picked, it should not show the Other Address
  • And if you do select Other, it seems to maintain the link to a prior address

 

Date selection

  • Online (users) should not be able to select a date in the past. Nor too far ahead (eg 6months)
  • In the backend, we should allow historic dates but a warning flag to show if the travel date is in the past

 

Billing

  • Payment link not required if Outstanding = 0
  • Outstanding calculation is not correct.   Doesn't include the surcharges to the Trip prices, nor capture the Paid amount. 
Pending
3.16

“Shared” Private Transfers

  • Create a view of all Private transfers where the IsShared = true, sorted by Departure Destination and Arrival Destination and a flag if there is a match 
    • Match is when…
      • Date, and To/From destination (city) is the same
      • For pickups at the Airport or Train, that all customers on the same flight/train
      • For dropoff at the Airport/Train, that the train/flight time are within [10] minutes of each other  (where the 10 is controllable in Settings - but hard code for now)
      • That the total pax combined is <8
  • We should think about if we can automate the matching and we should publish the possible matches on our public website
Pending
3.17

Client comms

  • Clients can have a secure webpage (similar to the autologinm) to shows each booking/transfer with the ability to edit some fields
    • Security code that times out. 
  • Client acceptance - Give a code to clients to accept the transfer. 
  • Whatsapp message to clients the night before.   Link to summary of transfer (not user protected)
Pending
3.27

Public pages (non-protected)

  • Add links from the HomePage to the following public information - to drive more traffic to the website  (will this adversely affect our performance)
    • Train times (DONE)
    • Flight board (DONE)  
    • Business Contacts (eg restaurants, shops, hotels)  (DONE)
    • Chalet map (DONE)
    • Shuttle available seats (WIP)
    • List of Private+ trips (ie those trips with free seats available)
  • Enure they are optimised for mobile and desktop views
- Pending
3.28

Accommodation: Index

  • Compute the number of transfers, and the value of the transfers, in the “Reporting Period”
  • Create a service called “FinancialReportingService” that has two functions that compute these statistics (placeholder for now)
    • TransferCountByAccommodation
    • TransferValueByAccommodation
  • In the Systems Settings entity add a ReportingStartDate and ReportingEndDate fields that is used in this service.
  • This service will also do 
    • TransferCountByUser
    • TransferValueByUser

Accommodation: Street map 

  • Sizing of map looks wrong.  Take an example with 2 chalets in Rue Barmete….
  • There should be a maximum zoom setting 
  • Filters on Accommodation Index:
    • City (i.e. destination)
    • By “type” in a given Destination (e.g. hotel, restaurant, shop etc in Verbier)  
  •  Map - by Affiliate  (ie show all <<Bramble Ski>> properties
    • Link from the Affiliates page.  Or from the Resort contacts page 
Pending
3.30

Accommodation

  • Ability for the user to add a new address
  • When selecting an affiliate, have a map page that shows all the chalets for [Bramble]
  • Create a sorting table for the various scenarios (mobile/desktop,  Admin/User,  Filters selected)
Pending
4.10

Confirmation pages 

  • How to handle %Source%  %Transfer% and %footer% in the email confirms
  • Including details of the tel number (country code, PhoneAnalyser - confirm if the number is “verified”) 
  • Generate error-chasing emails where corrections can be made without a login 
  • Perhaps flag bookings where this has been triggered (with a sunset clause as a security measure or to avoid last minute alterations). 
    • Add/correct phone numbers 
    • Add/correct babies 
    • Add/correct flights 
Pending
Loading…
Loading the web debug toolbar…
Attempt #