To Do: Top Priorities (Top Priority)

Priority Project #
1 ATS Template #: 4
1.01

Roles entity

  • Create a ranking of roles. See if you can mimic the heirachy. 
    • ie Create a list of other roles that are granted by association.
Pending
1.01

User

  • Create fields for the GPSLocations for both HomeAddress and BusinessAddress
    • businessGpsLongitude
    • businessGpsLatitude
    • homeGpsLongitude
    • homeGpsLatitude
      • DONE
  • Include buttons to take current location and populate either Home or Business gpsLocations  TODO
  • Improve the user/show twig (compare to business card show) and include a map with both the addresses on them  DONE
  • Hide Business or Home buttons depending on settings in CompanyDetails DONE
  • In User index include the red map-marker icon if the gps longitude/latitude are present (like business contacts) DONE
  • Include in CompanyDetails, in the User Profile,  a flag to include GPS (one flag for Home, one for Business) DONE
Pending
1.03

Backup plan

  • Can the live server copy the database to c:\dev every [x] hours.  Controlled in the settings
Pending
1.03

CMS Copy/Format

  • I have placeholder field in all the CMS_Copy records called CMS_Format.  It includes the different tricks to format the page (Accordian etc).   
  • Can you wire them up and make them work so we can have a different formatted page?
Pending
2 AX Tools #: 9
2.01

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
2.02

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

Confirmation emails and clients amending bookings themselves

  • The idea is that it would be nice if clients could edit/correct some details in their booking directly.
  • In my old company clients had to call or email in to make ANY changes to their booking,  but it would be much more efficient if they could amend bookings themselves 
  • However, we can't let them make changes (without us ok'ing them) if they critically change the program for the driver after it is too late.
  • The key concept is that clients shouldn't be able to amend things that mess up the day (if they make last minute changes).  So they can't change the destination or number of passengers (beyond the capacity of the car), or times at the last minute
  • Issue is security - how do we give non-login access to edit a booking without exposing the database? Do we add a specific link to a page that is not login protected that allows changes, and only works for some fields with 24hours notice?  
    • At ANY time (even last minute) they should be able to:
      • Add/correct phone numbers or emails
      • Additional passengers names/details
      • Add address within the resort/cities
      • Reduce baby/child seats (not increase)
      • Change passenger numbers so long as it doesn't change the price (ie the vehicle)
      • Add flights number so long as it doesn't change the time  (probably not allow that change)
    • With more than [36] hours they should be able to change things that make a difference to the driver's program (eg destinations, dates, add trips)
  • Think about the best approach for this. 
    • Give them a unique page  (and include a password on their email?)
    • Do it by buttons?
    • What do you think?

 

Ideas

  • Clients can have a secure webpage (similar to the autologin) 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
2.05

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
2.07

Private + bookings

  • We should create a page showing the Private+ bookings that can be seen externally. 
  • Recap: A Private+ booking is one that the original client (first) has opted to allow others to travel with them, to share the cost, so long as the times and destinations work.
  • The criteria are:
    • Drop-off to an airport - they have to be on flights that leave within [20 - controllable in settings] mins of each other and departing from the same Destination (eg Verbier)
    • Pickup at an airport -  they have to be on the exact same flight…. and obviously going to the same ‘Destination’ (eg Verbier, Chamonix etc)
      • FYI, the 20min rule doesn't apply for pickup at the airport as 1 flight might be early/later and the waiting period could easily extend from 20mins to hours. But for dropoffs that doesn't apply (as we don't know about delayed flights until too late to influence the taxi journey)
  • So, the page should reflect that:
    • Date
    • Seats taken
    • Seats left (assume 7 seats in the car)
    • Pickup (from(
      • If airport, then flight number
    • Drop-Off (to)
      • Don't show the address (eg Ch de la Tinte, 5), but show ‘Verbier’
    • Price for 1,2,3… people  
      • We will work on the formula for that.
Pending
2.09

Private Plus taxi

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

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
2.14

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
2.16

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 Payroll #: 2
3.01

 Employee import

  • Creation of a User for the employee upon import and or manual input
    • Make sure email doesn't exist already
    • And if email added 
    • Service to check if email is in the User list (see view in Employees, currently 1==1 is the check
Pending
3.03

Employee

  • Derive the Impot classification from Married/Single/Divorced and Children
Pending
4 LinkSync #: 2
4.00

Languages

  • Don't save the nulls

Birthday

  • Is not being scraped.  Linkedin only gives day-month.    Save as dd-mmm-2000  (we will display only as dd-mmm)
Pending
4.05

CRM

  • Create a User/Firm level set of comments on a Connection.
Pending
5 Immigration Services #: 2
5.02

Process of reviewing docs (e.g. Passport, Utility bill, Tenancy etc).

  • Client upload the respective document and fills in the details required.
    • Clients should only see the first column; not the column(s) for the Review process or the reasons for failure….. 
    • Clients should not be able to edit the review section
    • Status should be set to default
  • GRTS review the doc and show comments.
    • And send comments to client
  • Client then ‘corrects’ the error.
    • How do we track this?
    • Can we have a history entry that tracks the changes? A non-editable field that tracks the date of the change, who made it and what was made.  
    • If a revised scan is uploaded, do we keep the old one (rename it?), and link to it in the history field?
    • Client amending should reset to Pending.  
    • Errors before should still be visible to staff members
Pending
5.03

Immigration Services site

  • Include the ability to upload an email into a “New Client” form
  • Complete
    1. MEU1 form (partially complete) population
    2. MEU3 form 
    3. Bank of Cyprus form 
  • Check all the customer pages work on a mobile
    1. Need to upload scans via camera on phone
  • Not all the forms (passport, driving licenses etc) have the Controller built to upload files (and delete files)
Pending
7 Tennis Club #: 1
7.01

Tournament

  • Create the draw and the matches 
    • Including scheduling futures rounds
  • Show the contact details of one's next opponent
Pending
8 Tennis Finder #: 2
8.05

Scraping courts 

  • MyCourts  (generic code that will then apply to all the MyCourts clubs)
  • Duke’s Meadow – requires a bespoke scrape
  • Aphrodite Hills
Pending
8.06

When booking an Aceify 

  • When making a booking for an Aceify client, check the Aceify credit available 
    • Malcolm to check how to access a client’s balance, and if there is a unique URL  - via the client’s email or client’s ID
Pending
9 Financial Advisor #: 2
9.01

Updating contributor site

  • Scrape either the YouTube  contributor site, or apple.com  to show all new shows
  • Only issue remaining is that they are not sorted by date pre expansion….   And a lot of YouTube dates at 12-Aug??
Pending
9.01

Mortgages

Scrape once a day the following (establish a chron job at a set time, eg 5pm)

  • Mortgage rates (from moneysupermarket.com)
    •  Bank name, Rate and Product Fee.  Set Term to 2yr or 3yr or 5yr and date =Today
  • Swap rates (Gilts or GBP-swaps) from investing.com [DONE]
    • 2yr, 3yr, 5yr, 10yr
Pending
12 News-scrapper #: 2
12.02

News Lists

  • Issue is that the buttons trigger a refresh and slow.
  • Can one overcome this with a javascrpt flag and a press to do all button at the end

Users

  • Centrally scrape the content of the articles.  Check once the login of the user at their login stage, and track if good.  Then show in the title page if the login is confirmed as valid
Pending
12.04

Set up a Payment gateway- Stripe? 

Pending
16 Flight Database #: 2
16.02

Flight database

  • The objective is to build up a database of all future airline/flight numbers/departure/arrival times for a given airport (eg PFO).
  • The objective is to get data about every flight scheduled in to/out of Pathos airport (or Geneva airport).  So each day going forward, i want to see the flight number, airline, destination/departure airports, schedule time and actual departure/arrival times.
  • The flight database is designed to provide data to the AXtools and the ParkNRide projects.
  • To do this I want to list all the destinations served by an airport (eg for PFO it is LGW, FRA, LHR,  LSN, etc) 
    • For each date and route (eg LGW-PFO), return the flight details.
    • Look for direct (non-stop) flights only
      • Return the list of flights (date, airline, take-off and landing time, price)
    • We will match that to a database of flights (airline, route, time) to get a flight number.   If a new flight, add a new record to look up the flight number.

The source could be either kayak.com or aviationstack.com (Login: nurse_stephen@hotmail.com; Password: Descartes99)

Pending
16.02

Separate out the Flight scraping software from the AX Tools and the StephenNurse site and consolidate into a single site. 

Scrape all flights to/from PFO and Larnaca airports and tracks prices over time as well as flight times and actual arrival and depart times

 

Pending
35.1 Personal Admin #: 1
35.11

Taxi app

  • As you know, we haven’t yet managed to get the Alpex software to work standalone, but once we have that working I would like to adapt it in a number of ways.  My first objective is to enable it to work for at a number of new airports and more strategically I want to move away from the owner-operator model (where I own the cars and employ the drivers) to an aggregator model where we outsource to other single driver operators. This will be quite a build change.   In addition I want to build a iPhone (and maybe Android) version of the client website so we can use the client tracking features.  

Park-To-Fly

  • I have seen a company here in Cyprus that could benefit from most of the functionality of the Alpex software.  The company essentially provides a car park close to the airport, where passengers can park their cars near the airport while they are on holiday, and the company drops them to/from the airport in small buses. 
  • In essence, from an IT perspective, their business is very similar to my Swiss bus company (Alpex), so I was proposing to strip down the Alpex system to automate that business.  The key is that it requires the company to track flights, and move people on/off a shared bus to/from the airport.   So there are lots of synergies. 

Accommodation software

  • I was going to buy a house in Cyprus and rent it out in the summer months.  I would like to build a website for to advertise that house and others around.  Similar to booking.com

Kids Travel Lite

  • I met the owner of a company called KidsTravelLite.com. In short, that company hires children’s equipment to tourists while they are holiday (e.g. prams, cots, toys).  Her site is aesthetically beautiful but very simple, and I offered to improve it. It does not do inventory management or track flights and this could synch into the taxi app.  One idea is to integrate the hiring with the taxi to/from the airport

Recruitment site

Overall app

  • I thought I would ultimately combine all the with the tennis club website into a single offering (single resort app) as they all rely on some similar info (e.g. accommodation details, flight details)and I can see synergies if customers only have 1 login.  In future I can add restaurant bookings, baby sitters etc.  Perhaps that ‘single login’ is something we should talk about at the start?

BreaksToLove app 

 

Pending