To Do List: AX Tools (Pending)


All

Priority Project #
1 AX Tools #: 18
1.24

Trips to Outsource view

  • Outsource scrape is incomplete
    • Time
    • Arrival sddress
    • Notes
    • Test throughly
  • Create “Partner view” 
    • Future view, Past view (not the default)
    • Press button to accept
    • Email/WhatsApp to advise change  
    • Trip count on the day
    • Shows all trips, accepted or not and assigns a driver (from their list, greying out but not restricting those already signed up)
Pending
1.25

Partner Driver view

  • Export drops the ‘+’ on the phone number?
- Pending
1.28

Business model

  • Intro fee for referrals
  • New drivers sign up and need to send bank details, driving license and car details. Email and mobile 
  • 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 proove they were on time and to whatsapp the customer

Button that shows location when accepting last min bookings. 

- Pending
1.23

Employees

  • Create view of birthdays (email me the day before)
  • Add an address database
  • Display of the + sign should be inline.  Add hovers to the forms
  • Ability to send an annonce request at a click of a button
  • WhatsApp Yes/No can't be blank

Taxi companies

  • Email invite button and date sent
  • Last logged in timestamp
Pending
1.19

SBB trains

  • Email a range of times for the day
  • Change title a bit
- Pending
1.30

Private Outsourcing

  • Grid of prices.
  • Show grid of main combination with list of vehicles that the company has
  • Show a list of prices by provider (by price, by rank)
- Pending
1.32

Contacts

  • All – shouldn’t include the Employees (export already there)
Pending
1.01

SBB

  • Fix SBB scrape (SBB changed the design of their page)
- Pending
1.20

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
1.11

Transfers

  • Ops warnings:
    • Accommodation unknown
    • Flight unknown
    • Followup flag
Pending
1.21

Taxi partners

There are different levels of Partners

  • “Independent drivers” who only have 1 car and work for themselves
    • Either log into the system and run their business through it or
    • Just accept incoming requests
  • Larger companies with multiple cars and multiple drivers
    • Can either login to the system and run their business from it or
    • Just accept trips ad hoc
Pending
1.26

Taxi site

  • Track the history of the flights to build up a picture as to the on-going schedule
  • Email Hermes to see if they will send us the scheduled flights
Pending
1.22

Client acceptance

  • Give a code to clients to accept the transfer. 
- Pending
1.18

 Is it possible to scrape locations from an Item in FindMy in Apple.  So:you can see the location in the app but also on the iCloud site. 

- Pending
1.30

Transfer entity

  • Type, PassengerCount etc doesn't worl
  • Recap: a “transfer” is a trip.  A “booking” is a collection of transfers

Taxi Partner Companies.

  • These are taxis companies that we work with to allocate trip to.
  • To Do:
    •  Build an export function to CSV and an Import function from a CSV (as I have a list of taxi companies in outlook)
    • Taxi Compnay's “Show Prices” is not working
      • http://localhost:8000/partnerprices/index/John%27s%20taxi%20Compnay

SBB train times

  • This tries to scrape from www.sbb.ch the train times for the next 4 or 5 days.   Routes that are interesting are Martigny to Geneva Airport   or LeChable to Martigny or LeChable to Geneva Airport
  • The routes are saved in another entity (TrainRoutes) and the times/dates are in the entity SbbTrainTimes

 

Pending
1.17

Accommodation: Index

  • Two extra columns have been added to the Accommodation Index view, that will show the number of transfers and the value of the transfers taken 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
1.31

Background/rational

  • My idea is that various taxi companies and individual taxidrivers 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?
  • So I want to 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)
  • So let's say there are 50 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 website to my code (eg. www.johnstaxi.com) if they already have a URL?
    • So in each Partner company I would include theirwebsite link if they are adopting my system
      • A lower standard is that they can just see the trips and can bid on them (and manage them themselves).  
- Pending
1.27

Affiliates

  • Index.html
    • For the Resort Contacts (Staff) column, I have a link to the Resort  Contacts index file and the count of the number of staff.   A popup showing the names of the staff would be nice.
    • Same for Chalets -  currently shows the number of chalets and a link to the Accommodation list.  A popup would be terrific
  • Editing
    • The email recipients should show the list of employees (ie Resort Contacts) for that affiliate in the dropdown list.
      • Recall the Resort Contact is just a reference to a User (ie links a User ID to an Affiliate ID)   
      • Add a + button to add a new Resort Contact for that Affiliate
    • In the index, show the recipient names and email in popup
  • Sign
    • The sign is the file used as a background on the driver's iPads when collecting the client from the airport.  So it will have the hotel/chalet logo etc and on top of it it will show the client name.
    • Check that when you save a sign document that the input field no longer shows, there is a default button and it is shown in a thumbnail in the index view
- Pending
1.16

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
1.14

Transfers

Destination is a City

  • If the Destintaion IS a city (for either the start or end of the transfer), we need to show the dropdown list of accommodations to know where to pickup or drop off.  Include the possibility of "Other"
    • Save the accommodation id if picked from the dropdown (ie not ‘other’)
    • If Other, save the input in a new field
    • We will need 2 fields as we may have new locations in both the pickup and dropoff . Create two new fields
      • addressStartOverRide
      • addressEndOverRide 
  • Note: if the Destination is NOT a city (eg airport or train station), then do not show the address field at all (as there is effectively only 1 address)

 

Destination is a Train Station

  • If the Destination is a Train station, ask for train time and perhaps the origin/destination location.  So the 2 fields are
    • trainTime (time)
    • trainOriginOrDestination (string)
      • Depending on whether Transfer picks up at Martigny or drop offs, we can work out the direction of the journey and check the times.   But as far as capturing data- these are the 2 fields

 

Destination is an Airport (eg GVA)

  • We need to know the flight details (time, airline, city of origin or end) for both for (1) pickups from at airport (ie where the transfer starts at GVA)  and (2) drop-offs at the airport (ie where the transfer ends at GVA)
  • However it is the case that only one of the Start or End is an airport  - (ignoring the case where we are picking someone up at one airport and driving them to a second airport to take another flight - that never happens)
  • So while we need to capture the details of the flight (airline, flight number, destination/origin city, time) if not found in the flight database. we can work out if it is a departure or arrival from whether the Transfer is picking up or dropping off at the airport. So in the Transfer Entity you can use the same fields for Over-rides on the flights
    • flightOverRideAirline
    • flightOverRideFlightNumber
    • flightOverRideFlightTime
    • flightOverRideFlightCity

 

Pending
1.15

Accommodation

  • Mark any accommodation that is the default chalet for an affiliate with an asterisk
  • Create a transfer list by accommodation.  add a button in the accommodation to take you to those transfers by accommodation
  • In the Delete All button, don't delete accommodations where they are:
    • A default accommodation 
    • With live/historic transfers associated
    •  
- Pending
1.08
  • AccommodationStreet
    • Add a GPS location for each AccommodationStreet
  • Destinations
    • For each Destination add an address.  
      • Show in DriverPad- link to Google maps? 
    • Export and import function
  • Transfers
    • Show the extras below the below.
    • Use icons to display the outcomes on the main screen pre expansion (ie indicates that an expansion is required) 
  • Management
    • Create download of transfers and bookings
    • Revenue reporting
  • Flights
    • Develop a flight page for each day which shows a list of all transfers on them. 
  • Shared Transfers
    • Meet the train in LeChable 
  • Ops warnings
  • Driver pad
    • Button to WhatsApp passengers
  • Ask ChatGPT about AirTags and non apple versions
Pending
1.12

Revenue reporting

  • Include reports by CreatedBy
    • Add a field to Transfers for CreatedBy and CreatedOn
  • Work out how to handle view the revenue comparison across seasons
  • Add totals
  • Sort  By Affiliate or Private/Shared
  • Control start date from an input in Systems Settings
  • Control # period from an input in Systems Setting
  • 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
1.10

Confirmation pages 

  • How to handle %Source%  %Transfer% and %footer% in the email confirms
  • Including details of the tel number (country code, is checked) 
  • Include pin for accommodations that are known in the accommodation entity? 
  • 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). 
    • Eg add/correct phone numbers o Add/correct babies o Add/correct flights • 
  • Footer should include a fragment describing the baby and booster seats. 

 

Pending
1.02

Driver Pad 

  • Derived from Driver specific list of transfers and date 
  • Drivers need to be users to be able to login 
  • Coloured coded background to represent past, tomorrow, today, future 
  • Meet and Greet screen created from the driverPad 
  • Send location? Snail Locations 
  • Should I save the email fragments in the Destination? 

Other functionality 

  • Driver wake-up 
  • WhatsApp and call? 
  • Shared service 
  • Train shuttle. Enter flight time and it computes the correct train depature
- Pending
1.07

“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
1.06

Transfer_macro

  • When you have a flight, display the flight details so easy on the eye - presumably this can be der0vied from the flight id:
    • Flight #/airline
    • To/From
    • Either the Scheduled Departure (for depatures) or Arrival (for Arrivals) time
    • Updated time (ie delays etc)
  • In the Transfer_macro, when spooling through the flights, only show the flights where the Date of the flight equals the date of the trip and the ‘direction’ is correct, namely:
    • Airport pickups: (ie meeting clients at the airport and taking to the resort- i.e. destinationStart = Airport) - then we are meeting a flight arrival
      • If transfer.destinationStart = 'GVA",  then look for flightTrips where flightTrip.arrivalAirport = destinationStart  
    • Airport dropoffs: (ie depositing  clients at the airport and starting from the resort- i.e. destinationEnd = Airport) - then we are meeting a flight departure
      • If transfer.destinationEnd = 'GVA",  then look for flightTrips where flightTrip.departureAirport = destinationEnd  
  • Compute the pickup time derived from flight or train times
    • For pickups it is the flight/train arrival time plus the baggage time (eg 20mins for flights, 2mins for trains)
    • For drop-offs  (going to the airport), you have to work backwards from take flight time…. less commute time (see routes entity) and the check-in time allowance ,
      • System Settings contain the airport and train station delays
Pending
1.04

Shuttle from LeChable to Verbier (meeting the train)

  • Need to establish a schedule of transfers, to match the train times

Prices - Need to establish a pricing structure (for Shared and PTs)

  • PT : For a given route, establish a base price passenger, based off driving time and if home base(s), and number of passengers.   
    • Set parameters in SystemSettings:
      • y= mx+c * P-factor
      •  
    • Establish rounding to nearest CHF 10
  • Shared : Base price for 1-10 passengers. Drop off premium for difficult locations.   Ask if they know exact location of chalet (not for hotels)
    • Idea:  Add drop off/pickup locations around town?
  •  
  • For Shared and Privates separately…. For all routes, 
    • Apply a multiple of extra 1,2,3….10 passengers - - For Shared and Private
    • Determine a multiple for (i) Early (ii) late
    • By weekday
    • Special days

technically:-

  • Establish an entity “PricingByPassengerNumber”
    • Shared/PT/PT+
    • PT multiple
    • ST multiple
  • Establish an entity “PricingHighVolumeDays”
    • Date
    • PT multiple
    • ST multiple
  • Establish an entity “PricingTimeAndDoWFactor”
    • Priority
    • DoW (including All)
    • Time - Before  or
    • Time - After

 

Pending
1.13

Pricing

Private transfer

In the settings create a formula for the derivation of a price from a 

 

 

Entity:  HighVolume Days

Settings

Early start time/premium

Late finish time/premium

Weekend

 

Shared priceP1, P2, P3, P4, P5, P6, P7, P8

Pending
1.05

Flights

  • Scrape buttons: separate them into the “Scrape overview” and “Detailed scrape”
  • Detailed scrape should run once on T+1 to capture the Scheduled Departure TimeGVACH) , and then on the day according to whether a flight is in need of a scrape
    • Check:  Once we have the flights loaded from Kayak that this works ok
  • Then on T+0, the detailed refresh should run on “selected” individual flights, where the criteria for selection is:
    • actualDepartureTime is null
    • scheduledDepartureTimeGvach is after ‘now’ - 30mins 
    • Time since last refresh is more than 15mins

Current detailed scrape

  • It should only ever be populating the 
    • scheduledDepartureTime - No, this is from Kayak
    • scheduledDepartureTimeGvach - Yes, initially from Gvach Detailed scrape (T+1)
    • updatedDepartureTimeGvach - If different from scheduledDepartureTimeGvach 
    • scheduledArrivalTime - No this
    • actualDepartureTime - Yes from detailed scrape
    • actualArrivalTime - Yes from detailed scrape
    • notesGvaCh - This contains the CodeShare data
       

Code-share

  • Code share is no longer a relational field (linked to FlightTrips) as it is a function of the FlightNumber (and multiple FlightTrips can have the same FlightNumber). 
    • So the determination has to be a lookup on a matching flight number
- Pending
1.09

Exports/Imports

  • Improve the csv to an xls
Pending
1.03

Flight scraper - When to refresh using the detailed (flight by flight) code.

  • T+1.  
    • All flights. Once off check, mainly to get the scheduled times (ScheduledDepartureTimeGvach and ScheduledArrivalTimeGvach). Apply once.  
    • Run at 8am, for the next day.  In other words, on Monday at 8am, run for Tuesday's flights 
  • T+0 Departures
    • Not took off
    • Scheduled (gvach) departure time 
Pending

Loading…
Loading the web debug toolbar…
Attempt #