To Do: All

Priority Project #
1 AX Tools #: 16
1.00

Shared Transfers

  • When the Type selected is “Shared”, then limit the destinations to LeChable Train Station and Verbier.  I will make a flag in the Destination called “SharedDestination” to identify those
  • Let's talk about what a Shared service is.    It is a bus with up to 13 seats.  So we need to pick the shuttle according to the flight and also show how many seats left available.  I already have the best shuttle time logic solved for, but we need to build a capacity issue.  Let's first assume infinite capacity and solve that after
  • There is also the pricing of Shared to 
- Pending
1.01

Bookings index

  • In each transfer (T1..T4), show as much info as possible
    • Flights.  Blue for Arrival, Green for Departure.  Hover for flight details including scheduled and actual times.    Show a warning sign if later than x
    • Completed trips background colour green
    • Accommodation via a popup (name, address. afiiliate, diff access)
    • Times shown in icon with error sign if missing or late

Bookings

  • Show updated flight details in each booking, including flight times when departed/arrived 

 

Flight trips

  • I am developing a PHP symfony PS project that looks at flight times.  I have 2 sources for the scheduled flight times (departure and arrival) data and i want to use both to cross-check.  My fields  are respectively  1) scheduledDepartureTime and scheduledDepartureTimeGvach  and 2) scheduledArrivalTime and scheduledArrivalTimeGvach
  • In order to save real estate on the page I want to consolidate this data to a single figure, but have colours identify any discrepancies.   My thought is that the display should be (using departures es the example)
    • If only the scheduledDeparture time is present (and the scheduledDepartureTimeGvach is null), then display the scheduledDeparture, in grey
    • If both scheduledDeparture  and scheduledDepartureTimeGvach  are availablen and the the same then display either one (scheduledDepartureTimeGvach) in black
    • If both are available but are different by more than 10mins, the show scheduledDepartureTimeGvach  in black with red !, with the ability to show the scheduledDepartureTime via a tooltip/hover

 

- Complete
1.02

Clients

  • Can't make entity
  • Add new fields:
    • Total PV
    • Summary data
  • Add link to their trips
    • 12month PV
    • List of bookings, with first date and PV
- Complete
1.02

New booking

  • For taxi drop-offs at train stations, add the ‘10’ mins required to buy their ticket to the travel time
    • eg     Train time : 12;00 ;  drive time =  32mins,   then leave Verbier time is 12.00 - 32mins -10mins = 11:18
  • For all drive times add 5mins and multiply by 1.1  (dynamically controlled in settings).
  • Airport bookings
    • Is showing the Geneva flights for Zurich Airport or Sion Airport.   It needs to match on airport too.  Let's add some Zurich and Sion flights to test 

 

- Complete
1.02

Flight Index

  • Where the train times are shown in the view, hover over to show the 2 preceding and 5 following train departure times.
  • When a flight arrival is delayed, show the new expected train time and the previous one in a warning box
Pending
1.03
  • Multi-lingual functionality:
    • Include in the CompanyDetails entity a field called ‘multilingual’ (booelan)
    • Create new entity called ‘Languages’ containing, language (English, French, German, Spanish) , flag icon file,  and abbreviation
    • Selection of flag switches language of text
  • Page count
    • Add field in the Products entity for pageCount and pageCountAdmin
    • When a page is loaded add to the pageCount (and if an Admin user add to pageCountAdmin only
Complete
1.03

Shared Bus service (shuttle)

  • Concept:  It is a ‘shared’ taxi for a group of people on a specific train (arriving at Le Chable or departing from LeChable) that will drive the customers to their homes in Verbier (which is 10mins up the hill and then around town)
  • This bus will have [13] seats.  So can take up to 13 in total (split in any combination)

Arrivals

  •  It will meet upto 13 clients (eg 2+2 +3 +5 etc) arriving on the train, at LeChable. 
  • It takes  take them to their chalet(s) - ie does multiple stops in Verbier.   

Departures

  • it picks up up to 13 passengers in Verbier (about 25mins before the train) and drives down the hill to Le Chable
Pending
1.04

Destinations

  • Add the following fields:
    • Default address (used for airports and train stations)
    • Default longitude and latitude 
    • Notes

Accommodation Street

  • Add a field “defaultLongitude” and “defaultLatitude”. 
    • This is used to guide the map function when none of the buildings on that street has a GPS location….  That will allow you to  allocate buildings to the street numbers
Complete
1.04

New booking

  • The default trip 1 on a new booking is a trip from GVA to Verbier (on the next [Sunday]). 
    • However the transfer_macro does not offer the user a list of flights.  One has to switch to another destination and back to GVA to trigger
  • Switching Destination (eg from Verbier to Sembrancher) should reset the accommodation (or flight) 
  • Show above the trip the distance and time.
  • Price to be calculated on a formula based on drive time and number of passengers

 

  • Flights should be sorted as follows:
    • GVA pickup (ie Flight Arrivals): By scheduled flight arrival time
    • GVA drop-offs (ie Flight Departures).  By scheduled flight departure time 
      • Note, by "scheduled" I mean the gvach if it exists and the plain scheduled one if not
  • Departure times from trips to/from an airport not computed yet.  Should reference the flight arrival or departure times with the formulas agreed.

Accommodations

  • If the booking is an affiliate one, the list of chalets should just be their accommodations (but include all restaurants etc as usual)
  • Include a checkbox in the Details dropdown to show ‘All’ chalets
- Pending
1.05

Transfer

  • 3 buttons at the top:
    • ‘Save’ -  This updates the database but returns the user to the same screen (ie opens the Edit if new or stays on the Edit if in Edit mode)
    • ‘Discard’ - Closes the screen and doesn't save.  Prompt a "Are you sure?
    • ‘Save & Close’ - Saves the record and returns to the Bookings Index
  • Cancel transfer
    • This is essentially a new field. All the details are saved, but the transfer will disappear from (or zero costs) in any bills or from the driver's manifest
  • City- Address
    • The chalet name disappears after 2-3 seconds.   
    • The search should include the Affiliate name, so I can search for “Bramble”
  • Cancel button should be in Extras

 

Complete
1.05

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

  • T+1.  
    • All flights. 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)
  • 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
  • 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

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.06

Transfer

  • The number of Child and Babies should be capped at (Total Pax -1)
    • ie If the total passengers is 5, you can't have 3 children + 2 babies.   Assumption is that there is always 1 adult
  • In the booking Notes we should include ages of children.  or should we make this a new field?  (ChildAges,  BabyAges)?  As free text. 
Complete
1.06

Driver Ipad view

  • Have a view for Ipads and also Phones to display at airports or trains stations
    • Airport_sign.html  (ipad and iphone)
  • Launhced from their daily manifest view
  • Create 
  • Made contact field (and leaving or waiting)

 

Client comms

  • Create a secure webpage for clients, including a security code that times out. A page that shows each booking and each transfer. 
  • Whatsapp message to clients the night before.   Link to summary of transfer (not user protected)
- Pending
1.07
  • 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.07

Email Template

  • if the field AffiliateBooking is set to “Direct to Consumer”, then:
    • Set specificAffiliate to null
    • Set aggregateComfirmation to "Single Booking"
      • and hide these 2 fields
Complete
1.08

Feedback on Transfer Macro

  • The time box should be a format for time (24hrs) and width should match the dates
  • Date should show the DoW (eg Sun 16 May 2025)  TODO
  • Destination
    • Should be sorted by “SortOder” and then alphabetically on "City"-  with a break before ‘20’ TODO
  • Handling Destination is a "Train Station"
    • If you change the Destination from a City to a train/airport (eg from Verbier to Martigny Train) then the From Address field should switch to  Train time/Flight 
  • When Destination is a City (eg Verbier), the Accommodation dropdown needs to contain all the information (see attached screenshot). 2 lines required for each address: 
    • Symbol to indicate the “Type”
      • ‘House’ for a Chalet
      • ‘Knife and fork’ for a Restaurant
      • ‘Office building’ for a Hotel
    • Then show the Chalet Name, Apartment  details, and then the Affiliate (in brackets)
    • Then line below should have the street and house number
  • Looking at the database entry for the Transfer:
    • PassengerName and PassengerEmail and PassengerMobile should not be inherited from the Booking.  
      • This is an over-ride should the transfer not be in the name of the Booking. So unless populated manully, it should be null
    • Trip date should be not nullable.  Time should not be nullable but have a TBD over-ride or (TBD checkbox)
    • Should we rename TripXX to TransferXX in all the fields?
    • The addressStart and addressEnd still seems to be a string field rather than a relation field related to the Accommodation entity
      • We need this to be linked because the driver will be given various info points from the Accommodation entity (eg Door Code, GPS location, Driver notes, Client notes, Associated Resort Contact).   But there neeeds to be a manual over-ride “Other” available
  • Layout of Pax Child/baby.  Try to get on 1 line

 

  • The Hide/Show extra fields
    • The Passenger Name/Email/Mobile should be here.  (These are the “over-ride ones in case the names is not the same as the Passenger details for the ”Booking" as a whole
    • Delete Button should be hidden
    • There should be a “Cancel trip flag” - which is similar to delete but retains the info for document record keeping purposes
    • Notes needs to be a bigger field
    • The timestamps can be indicated in pop-ups without expanding the section.  The user will only expand if they want to edit  - which is rare as the times are generated by the system.

 

Feedback on the Booking section (on the left)

  • When you save the booking, you should show the ID of the “Booking”.  This is the customer reference number
  • Client email and client mobile should be nullable
  • Client details should be saved in the Clients entity if unique (ie that database grows) 
  • Status should be: Confirmed/Inquiry/Cancelled  (no need for cancel booking field)
  • Booking history:  This should save the logged-user and time of creation
  • Payment link expiry:  First trip date time less 24 hours
  • Still has the word “Transfers” on the bottom left

 

 

Complete
1.08

Codeshares-

  • 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
1.09

Feedback on Transfer Macro

  • Date should show the DoW (eg Sun 16 May 2025) 
  • Destinations
    • Should be sorted by “SortOder” and then alphabetically on "City"-  with a break before ‘20’ (or different colour)  (this is because the first 5 or 6 are the common ones, and the others are rare) 
    • Add buttons change order, but keep 20 as 20
Complete
1.09

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.10

Affiliates

  • if this can be done in less than 1 hours….  as it will only take 2 hours to do it manually…
  • Cycle through each of the afffiliates and extract all of the data (including the icon) and either save to a CSV or import directly into the Affiliates entity
  • Do not need to collect the following data:
    • Image file if difficult - I can collate manually (it is a 10min job to do all of them)
    • SMS recipients (this is probably stale info by now)

Accommodation

 

Resort contacts

  • Import the Resort Contacts.  
  • Need a new entity for them,,  User with ROLE_RESORT_CLIENT
  • Add a new entity ResortContact and create new record alongside new User

 

Clients

  • Extract all client info (188 pages) from this view.
  • http://alpexstage.caponica.com/controlroom/customer/list

 

- Complete
1.10

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.11

New Bookings (default settings)

  • Automatically add 1 transfer, with certain default assumptions.  
  • Create records in the SystemSettings entity to define the default settings.   
    • DestinationStart  (eg “GVA”)
    • DestinationEnd  (eg “VRB”)
    • Date: Following [Saturday]
    • Passenger #: 1
    • Baby:0 Child: 0 
    • Add 3 buttons on each transfer
      • Delete transfer (in hidden fields, next to cancel)
      • Copy transfer (in hidden fields). This makes an exact copy of the transfer details other than the assigned driver/vehicle and times 
        • Imagine being asked to create a series of transfers like the same pickup from chalet X to go to ski-lifts every day of the week at say 7am. Easiest way to do that is to create it once, then copy changing the day by +1 day
        • Importantly, do not copy the driver/vehicle details as these are not assigned and history is unique (ie when the driver arrrived)
      • Return trip - this reverses the To/From.  Make the date 1 week later.  Same number of passengers.  Not hidden - bottom right (could be an icon)
  • Create fields called lastSaved and savedBy  
    • (I have created them already) , that stores the time of last saved.  
    • Show time and initials in top right. of screen
      • These seem to still appear at the bottom of the booking page on the left
  • CreatedBy and CreatedOn fields  are not being saved at the moment
    • Moved to bottom of page, in light grey
- Complete
1.11

“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.12

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.12

Flight scrape

  • Saves the kayak link into the Details Link - whereas this should be used for the GVA.CH scrape
  • Duplicates seem to still being produced (eg if you run the scrape a second time)
  • Doesn't seem to detect or save the airline code.
    • Plus airlines have created a bunch of blank airlines (linked to flights - ie can't delete)
  • Does scraping make more sense, as the airline is shown in the drop-down?   https://www.justfly.com/  
- Complete
1.13

Transfers

  • Ops warnings:
    • Accommodation unknown
    • Flight unknown
    • Followup flag
- Pending
1.13

Transfers

  • Add 3 new fields – 1) “Price Adjustment” (float) and 2) “isSharedAllowed” (boolean) and “sharedTransfers” (relation linked to Transfer Entity – ManyToMany).
  1. Price Adjustment:  Each transfer will have a price, which will be composed of the “standard price” plus the possibility of a manual ‘adjustment’ (which most of the time is zero).  The adjustment might be positive or negative and for example might be because the customer wants something special (eg snacks/drinks in the car, or a stopover en route) etc.   The “standard price” will be calculated from the destination combination (eg VRB to GVA), the number of passengers and potentially the time of day, and we will designed an entity to capture that.   And the Price Adjustment is a manual input.   The standard price is  computed dynamically – but I want to save it in case the formula changes as we can’t change a price already given (hence a field is required. Make sense?
  2. IsSharedAllowed.  The concept I want to introduce here is that I want to offer people the ability to share a taxi. Typically the vehicles will take 7 people, so if you are a family of 4, you have 3 spare seats.  I will only allow a share if the others are on the same flight/train (if inbound – as sometimes flights are late and don’t want any additional waiting) or within [10] mins for a flight/train departure.   So if a client says yes to “isSharedAllowed” we will try to combine and split the costs.
    1. To do that we might need  to link transfers together using the sharedTransfers  field which will contain which transfers are being combined  (typically 2 clients (ie 2 transfers) but could be more, eg   4 passengers +2 passengers +1 passenger) And then we can assign all [3] transfers to the same vehicle/driver….
  3. For the train pickup service that is the same concept – we will have a bus (say 13 seats) that can take various combinations of passengers to fill it (could be 13 single travellers).  That service will take people from LeChable train to their chalets in Verbier.    Does that make sense?

 

- Complete
1.14

Transfers

  • The Cancel button should be a checkbox, that can be unchecked to allow the transfer to be uncancelled
  • Add a ‘Copy’ button that copies all the details of a given transfer, and does a Save-Re-Open too.     
    • This is because we are often asked to do similar trips (eg pick up the family at 8am to take to school Mon, Tues, Weds)
  • Without opening the Extras section, we should be able to see the content, if populated, in the Transfer main box, using icons and title/hover
    • For Passenger Name
    • For the Driver, show the Departed and Arrived Times via icons and the mins late/early  (see template/transfer/parts/trip_times_body.html.twig)
  • By the accommodation, if picked from the dropdown list, have a link to the accommodation/show record and also a pop-up box(es) with all the content summarised
    • Key icon for door-code
    • Warning icon if Difficult Access
    • 3 Notes fields (Driver Icon, User Icon, Office icon)
    • Map marker

Booking

  • If there are more than 1 transfer, they transfers should be ordered by Date-Time, and ordered Transfer#1, Transfer #2, Transfer #3 etc
  • Cancelled transfers should appear in the list (in order) but without a Transfer number
  • Why does the Zero Commission and Follow-Up Flag display differently?
  • Fields for notes doesn't expand when typing
  • Last edited time/user required 

Email confirmations and history

  • Under the Customer Details (below mobile) have an icon/link to customer confirmations,  It should include the count sent and a link that shows all confirmations for this booking
  • Similarly for WhatsApp messages
Complete
1.14

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.15

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.15

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
- Complete
1.16

SBB

  • Fix SBB scrape to include all the trains for the day (currently just taking 4-5 trains (one screen's worth), whereas I would expect there to be 30-40 trains per day (for GVA to Martigny as an example)
  • I think SBB changed the design of their page?
- Complete
1.16

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.17

Exports/Imports

  • Improve the csv to an xls
Pending
1.18

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.19

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.20

 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.21

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.22

SBB trains

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

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.25

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.26

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.28

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.29

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.31

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.32

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

Partner Driver view

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

Contacts

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

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.35

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.36

Managing the shuttles

For Arrivals.

  • Look at scheduled flight arrival time
  • Find next train to LeChable that is at least 45mins post scheduled flight arrival

 

For Departures

  • Look at scheduled flight departure  time
  • Find the first train to GVA from LeChable that arrives at least 2 hours before the scheduled flight departure time

 

- Pending
1.37

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.39

Client acceptance

  • Give a code to clients to accept the transfer. 
Pending
2 Payroll #: 1
2.01

Objective

  • To create an improved version of https://www.ski-jobs.co.uk/, which we started before (the ‘recruitment’ site).  
  • We can restart looking at that in parallel to #1 and #2 as I think once this is working I can do a lot of the development work myself.  I want to first make the workflow superior to this site and then I want to scrape all the jobs from this site and a few others.   
  • It will become evident as we build this , but first priority is to get it working with fresh (manually entered) data. 

Competitor sites

Search fields:

  • Location: French Alps/ Swiss Alps
  • Season: Summer/ Winter/ All-year
  • Duration: 3 months or Start and End date:
  • Jobs: Chalet Host/ Chalet Couple/ Chalet Chefs/ French-speaking PA/ Resort Manager/ housekeeper/ 
  • Salary: Competitive/ 1,700 Euro net per month (French contract; food and ski hire included) – Chalet Hosts? Driver & hospitality assistant @ Meriski/ 2,100 Euro net per month for Chalet Chefs (working 5 days a week)
  • Workdays: 6/ 4 (driver & hospitality assistant @ Meriski)
  • Nationality:  EU passport or Carte de sejour/ New Zealand, Australian, Canadian, or South African passport holders who have obtained a working holiday visa for France

For candidates

  • Candidate CV review
  • Referal fees

For employers:

  • Ask clients what they want
  • Success based (no hires, no fees)
  • Target audience may be France
  • Transport from UK to France/Austrai( check fllght costs with lots of luggage in early dec)
  • Contract generation
  • University fayres
  • Visa, Tax

Clients

- Complete
2.01

Response from Website Inquiry Contact Form process (in Payroll Project)

  • As in ATS, the process of submitting an inquiring will create a new User.  Ensure that the role of that new user include ROLE_EMPLOYER
  • New Employers can choose the services they want to avail themselves of
    • Monthly payroll
    • Employment contract negotiations
    • Health insurance set-up
    • Employee permits (including managing capturing and checking the data from the employees)
    • Employee admin (housing, transport, training)
    • Ski hire for the season
      • Use the Product entity to control the text for each service (including pricing)
      • Check box for each Product that each Employer wants to take up
  • When a User logs in, if they are ROLE_EMPLOYER but do not have an associated Employer details set up, it will show a page designed to walk them through setting up an Employer. 
    • Employer page should include a question as to what services they would like to use. (See above)
  • If an Employer has been set up, it will direct them to their own dashboard page with their Employer(s) (likely 1 but can cater for others) with the links to their various pages with some sort of summary info.
  • If a a ROLE_EMPLOYEE or ROLE_USER, then design a dashboard page for an Employee
    • Access to their personal details
    • Store of permits
    • Payslips
    • General information and help
  • When uploading an Employee, be sure to track Default Language

 

Payroll – Other tasks 

  • Create a Pricing entity
    • Product (relational field)
    • # Employee and price (thoughts – single entry of multiple entries per product)?
  • Create a Communications Template entity
    • Name
    • Text in EN, FR, DE etc
  • When uploading a new Employee be sure to include their country so the User Default language can be set.
    • Edit the Employee upload function (New or Edit or Import) to check the employee language setting 
Pending
2.02

 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
2.02

Payments made

  • Summary table by month that shows:
    • Month
    • Total # of payments
    • Total $ amount
  • Duplicates produced on import
  • Checked versus bank flag
- Complete
2.03

Objective is to do AVS and other payment calculations.

Strip out of AX tools

- Complete
2.04

Injection of Fields from a Record into PDF forms

  • The objective of the website is to automate the production of and the collection of data for various PDF forms. 
  • Your role is to understand the tech required to take an entry (the name of the employee) and “inject” it into a form. 
Complete
2.05

Have a look at http://hr.alpinexpress.com/admin/dashboard

  • Login: VBC
  • Password: Sn0wman!
- Complete
2.06

Payment Made

  • Ability to add multiple in one pop up
Complete
2.07

Form Fields

  • Index.  When the sorting feature is turned on, I can't alter the width of the category column
  • Add Import and Export function
Complete
3 ATS Template #: 6
2.99

Multi-currench flags don't work

- Pending
3.00

Photos

  • Header Link should go to the Show By Location if sole location
Complete
3.01

Payment link

Set up a link to Stripe or similar.  Be able to copy to other projects

  • Payment entity linked to the User
  • Account at Stripe (use nurse_stephen@hotmail.com)
- Blocked
3.01

Business Contacts

  • Index:  Need to sort by the ranking of the Business Types
  • In Business Contact form
    • Java-script to hide the First/Last Name if the BusinessOrPerson= “Business”.   if Person selected, show both
    • Add GPS location button that picks current location.   Activate from the view too. 
  • When deleting a business contact, cascade to the Referrals log
- Complete
3.01

User

  • Create a field in CompanyDetails that permits or not “Auto login” from a given unique URL
    • Each User gets a unique URL, which will log them into the site with their name
    • Construct a controller that does that login for them
Pending
3.03

CMS

  • If non GB text is blank, return the GB text prefixed by (Awaiting translation…)
- Pending
3.04

Users

  • Edit User fails because
    • Password is not visible
    • If the user has 2 or more than 3 names in the fullName 
Complete
3.04

Multi-lingual functionality:

  • Include in the CompanyDetails entity a field called ‘multilingual’ (booelan)
  • Create new entity called ‘Languages’ containing, language (English, French, German, Spanish) , flag icon file,  and abbreviation
  • Selection of flag switches language of text

Page count

  • Add field in the Products entity for pageCount and pageCountAdmin
  • When a page is loaded add to the pageCount (and if an Admin user add to pageCountAdmin only)
Complete
3.04

Contact Box on HomePage

  • if there is only 1 active product, don't show the checkbox
  • Include in the CompanyDetails a checkbox to ask whether to include the tel number and or the Message question in the contact us box
Pending
3.04

ATS Template

  • Multi-lingual functionality:
    • Include in the CompanyDetails entity a field called ‘multilingual’ (booelan)
    • Create new entity called ‘Languages’ containing, language (English, French, German, Spanish) , flag icon file,  and abbreviation
    • Selection of flag switches language of text
  • Page count
    • Add field in the Products entity for pageCount and pageCountAdmin
    • When a page is loaded add to the pageCount (and if an Admin user add to pageCountAdmin only
Complete
3.05

Translations

  • Create import/export buttons for the translations
  • Replace records with same English
- Complete
3.05

Product List

  • Button to make Active/Inactive from the Index
  • Buttons to Change the Ranking and Renumber
- Complete
3.05

New functionality: Glossary

  • Add a new entity called Glossary or Help
  • Creates a page with some background that can be linked from another page.  But shouldn't be in the main drop-down menus
- Pending
3.06

Useful Articles

  • Create a “Useful articles page” with some helpful topics.    
- Pending
3.07

Templates

  • See if you can move all the twig templates under an ATS directory so you can delete them all in the update bat file and resave easily
Pending
3.07

Company Details

  • Boolean checkbox can't not be checked
- Complete
3.07

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. 

User-roles

  • Consider how to handle the nesting (ie heirachy)
    • Should you save the other roles upon exit?
- Pending
3.07

Multi-lingual

  • In Company Details control the default language, with one setting being to look at the browser language?
- Pending
3.08

CMS Copy

  • When switching between Static Page and Product, deleting the field for Static page/Product respectively
  • New CMS: Product list to be ordered by ranking
- Complete
3.10

Registration

  • Settings.   Have a flag for enable registrations
  • Email templates:
    • Registration - Thank you registering and has a verification link to confirm
    • Referral 
  • Display QR code on home page
- Complete
3.11

CSS 

  • Should these files be copied from the ATS Template?
- Complete
3.11

Create a Help entity

  • Ability to show video of implementing each function
- Complete
3.11

Backdoor

Doesn't work: Password Encoder error

Complete
3.11

Header

  • Photo header appears if there are no photos stored
Pending
3.12

Photos

  • if the file is missing, you can't delete
- Pending
3.12

Security

  • Email verification for New users
- Pending
3.13

Business Contacts

  • Counter fix.  Don't display Business Types if Counter =0
- Complete
3.14

Instructions

  • Import Media file
  • Display media file
  • And launch
Complete
3.14

OfficeAddress

  • Why doesn't it occupy full page, especially on mobile?
- Complete
3.14

Website contacts

  • Add a delete all button
  • Include the phoneChceker into the index view
Pending
3.14

Live server set up

  • Automate the process to give read/write access to the public/administration
    • sudo chmod -R 775 /var/www/html/stephennurse/public/administration/Attachments/
    • sudo chown -R www-data:www-data /var/www/html/stephennurse/public/administration/Attachments/
  • Write a batch file that will copy the Map-Icon and Language-Icon files,  to all the projects (or have them uploaded in the git process)
Pending
3.15

Languages

  • Add a link on the Active/Inactive to turn off/off instantly
  • Add a ranking number to control the order of the flags in the dropdown
  • Import feature to upload all the countries.  Delete all

 

- Complete
3.17

Company Details 

  • Boolean flag to show/hide Contact Details in the Headers
  • Other flags to hide/show other functionality from the Dashboard 
    • Weather, Facebook groups, Business contacts, Instructions, Competitors.  
- Complete
3.17
  • Add useful contacts – copy from Stephen-nurse or Immigration
  • Include a map that shows the location of each restaurant/hotel etc
  • Restaurant entity to include opening times (for on and off peak season)
  • Menu entity
    • Linked to restaurants
  • Add all to the copy batch file
Complete
3.18

Company Details

  • Include Contact Details or not in the headers
Complete
3.19

Company Details

  • Index view - The i icon for Directions doesn't slice or raw
  • Weather -  Fails with GMT as time zone
  • Map link field - increase height
Complete
3.20

Company Details 

  • Button to add Longitude and Latitude into the Company Details record
  • Can't save changes (since adding Photos)
Complete
3.21

Weather

  • Index - Link to the live google weather page doesn't find the location specfied
  • Create a daily chron job
- Complete
3.21

Header & Footer

  • Product list should be sorted by Ranking number 
- Complete
3.23

Products

  • Deleting a Product when the CMS is populated drives an error
- Complete
3.23

Helpful files 

  • View of Useful URLs on the mobile
  • Email fails with one file
  • Email fails when more than one file (different error)
- Complete
3.26

Languages

  • CompanyDetails page fails if no languages in database or no English
  • Doesn't seem to work in TennisClub.
- Complete
3.27

Facebook Reviews

  • List of users : FindByRole function should have up to 3 roles 
  • Include a setting for limit review history (eg 3 months), and show/hide the reviews according to that limit
  • Import Reviews needs to find the User and the Facebook Group from the entity
Complete
3.28

CMS Copy

  • Can't save Edits
  • Increase height of the content box
  • Define different page layout formats and have the CMS copy be applied to that format
- Complete
3.30

Company Details

  • Doesn't save the Driving Instructions. Can't save edits
  • Wrap google map link
Complete
3.30

Referrals log

  • Date Time function
Complete
3.31

User Log

  • Edit function error
Complete
3.31

CMS Photo

  • Default the rotate to zero
  • When editing, if it was a Product it reverts to Static upon opening
  • If photo.photo is blank, it should be ignored in the controller (displaying product.html.twig)
- Complete
3.34

QR page

  • Look and feel on full and small screen
Complete
3.34

Logout time

  • How do I control the time til the systems logs you out?
Complete
3.35

HomePage (Photos) and Interests Page

  • If the hyperlink is blank it should do anything when clicked.
Complete
3.37

CMS Copy

  • Headlings and Titles in CMS_Copy should be be hidden unless Ranking ==1
  • Default Ranking =1 for first one and 2 thereafter
Complete
3.38

Home page (photos only)

  • Looks terrible on Ipad Pro 
    • Looks ok on iPad Mini
- Complete
3.39

Users

  • VCF export not built
  • Show each user's log count, counting the number of times the number has logged in. 
    • Hover to show the date/time of the last [5] view
Complete
3.40

Useful files

  • E-mail functionality doesn't work
  • Edit issue
Complete
3.41

Photos

  • E-mail fails
  • Handling of favourites

 

- Complete
3.42

Bugs in live systems vs ATSTemplate

  • MapIcon, Business Types and Business Contacts imports don't work on stephen-nurse.com
  • Winter Cash Cup: Upgrade from ATS didn't work
Complete
3.42

Registration

  • Email fails
  • Need to test the full process
- Complete
3.43

Services.yaml

  • The only directory that doesn't work is the favicons_directory and mapicons_directory
    • However it works in the CompanyDetailsController, it only fails to work in twig (company-details-index,  QR-homepage, base.html)   
    • In each of those twigs, they don't accept other directories from the service.yaml   and favicon_directory works in other twigs
Complete
3.46

Business contacts

  • Test that the file attachment and photo get deleted if you delete a contact
Complete
3.46

Business contacts

  • New contact: Sort categories alphabetically
  • FIle and photo field show in edit mode when not empty.  Copy JS in Edit for CompanyDetails
  • Index: Desktop class doesn’t work
  • Count contacts where maplocation is not empty service

 

Git fails

  • Copy to Whistles and Bells
Complete
3.46

CMS Photos

  • Movie files in Interests/Products or Home page don't seem to size correctly
- Complete
3.48

Business contacts

  • The File and Photo fields show when not empty.  Copy JS found in Company Details Edit form
Complete
3.48

Map Icons

  • New/Edit:  Selection of icons to be sorted alphabetically
- Complete
3.51

User

  • Add photo, which should be part of personal details
  • Improve views
Complete
3.51

Website contacts

  • How do I see what Product they are interested in?
Complete
3.51

HomePage (Photos only)

  • Closer together
- Complete
3.52

User

  • Work out a way to share some common features of the User entity but allowing for adaptions for each different project
  • ChatGPT:  I am building about 10 different websites that all work on Symfony/PHP.  They will all share the same foundations or basic architecture (basic USER handling, a CMS, and other standard features) and any changes in one are updated across all by copying the Entity, Controller, Form, Repository and Templates.  The each site will have some specific code unique to each site.   The problem I have is that the USER entity needs to be slightly different for each site, so I can't copy those across.  How can I maintain consistency and the uniqueness.  My thought was to split the user entity in two and embed the second (different) USER2 contents within the USER form.  Any suggestions
Complete
3.52

Map Icons

  • Button to delete icons and hide/show the form field as appropriate
Complete
3.54

Mobile view needs to be improved

  • Dashboard
  • Company Details
    • Change from a table to a single record to display across whole page (Show)
      • Show function doesn't work as is
  • CMS_Copy - restrict content 
  • CMS_Photo - restrict content 
- Complete
3.54

Business contacts map

  • Map not displaying
Complete
3.55

Maps

To calculate the optimal zoom level for a Google Map that just fits all of your venues without scrolling, you need to determine the bounding box that encompasses all the venue locations. Based on the bounding box, you can compute the zoom level that ensures all the venues are visible. Here’s how you can approach this:

Steps to Calculate Optimal Zoom Level

Find the bounding box:
For all your venues, compute the min and max latitudes and min and max longitudes:

  • minLat = minimum latitude of all venues
  • maxLat = maximum latitude of all venues
  • minLng = minimum longitude of all venues
  • maxLng = maximum longitude of all venues

Calculate the geographical range:

  • The latitude range is:
    latRange = maxLat - minLat
  • The longitude range is:
    lngRange = maxLng - minLng

Calculate the center of the map:
The center of the map is simply the average of the latitudes and longitudes:

  • centerLat = (maxLat + minLat) / 2
  • centerLng = (maxLng + minLng) / 2

Calculate the diagonal distance: The diagonal distance between the top-left and bottom-right corners of the bounding box is critical for determining the zoom level. You can use the Haversine formula or a simplified approximation to compute the distance.

The Haversine formula is:

  1. a = sin²(Δφ/2) + cos(φ1) ⋅ cos(φ2) ⋅ sin²(Δλ/2) c = 2 ⋅ atan2(√a, √(1−a)) d = R ⋅ c

Where:

  • Δφ = difference in latitude (in radians)
  • Δλ = difference in longitude (in radians)
  • φ1, φ2 = latitude values in radians
  • R = radius of the Earth (mean radius = 6,371 km)
  • d = the distance between the two points (diagonal distance)

Estimate zoom level:
Based on the diagonal distance, Google Maps provides a rough way to estimate the zoom level, which is typically from 0 (world) to 21 (street level). A common approach is to map the diagonal distance to zoom levels using a logarithmic scale, but this depends on the map's current bounds and the projection used. Generally, a simplified formula is:

  1. zoomLevel = maxZoom - log(d / maxDistance) * scaleFactor
    • maxZoom = the maximum zoom level allowed (usually 21)
    • maxDistance = the maximum diagonal distance you want to show (e.g., distance across your entire map's viewable range)
    • scaleFactor adjusts for the desired map fit

Using Google Maps API to Simplify:

You can simplify this calculation by using the Google Maps API, which has a method to fit markers within a viewport using fitBounds():

// Assuming you have an array of venue locations in {lat, lng} format: const locations = [  {lat: 40.748817, lng: -73.985428},  {lat: 40.748217, lng: -73.985128},  // Add other venues here ]; // Create a bounds object const bounds = new google.maps.LatLngBounds(); // Extend bounds to include each venue locations.forEach(location => {  bounds.extend(new google.maps.LatLng(location.lat, location.lng)); }); // Create a map with the bounds set const map = new google.maps.Map(document.getElementById("map"), {  center: bounds.getCenter(),  // Center map at the average of the venues  zoom: 15  // You can let Google automatically choose the zoom or set a default }); // Fit map to the bounds map.fitBounds(bounds);

This method will automatically adjust the zoom level and center based on your venues, ensuring all the locations are visible without scrolling. You don't need to manually calculate the zoom level if you're using this approach.

Complete
3.57

Doctrine update - Entities not working

  • Instructions
  • Weather
  • Facebook Groups
  • Competitor
  • Competitor Service
Complete
3.58

HomePage

  • Allow multi-selections in the Contact Us form
  • Add Product-include in Contact form field

 

Complete
3.58

ATS Company Details Show

  • Fix slider
  • hide facebook months and registration email if deselected 
- Complete
3.60

Facebook Groups and Products

  • Not sorting
- Complete
3.60

User

  • Reset password doesn't work
Complete
3.62

Interests/Products

  • In the hyperlink in the Products/Interests entity - in the index correct for https or www to launch even if lazily entered.   Same for business contacts
- Complete
3.63

Products

  • Notes field should be better positioned (on the right, col-8) and be editable with CKEditor.
  • As you hover over the Links for the Products in the menu it should show you the Notes
Complete
3.63

CMS Photo

  • When editing, if the file is loaded, don't show the input box
  • Make the unique identifier just three letters
  • Increase the size of the photo in the Edit field much larger
  • Make the Hyperlink adaptable to include rhe https// and www 
  • Improve the title on the Edit page
- Complete
3.65

HomePage - All photos

  • The photos don't have the hyerlink or the title pop-up working

 

- Complete
3.67

Products

  • CkEditor in Products
Complete
3.67

Email server

  • Emails failing in many projects
- Complete
3.68

Check backdoor functionality

  • Doesn't work in ComfyCats (live)
Complete
3.69

SQL download

  • Learn how to import into local
Complete
3.71

Instructions page

  • Nesting problem
Complete
3.72

Website contacts

  • Ordering of products according to ranking
  • Similarly in email
- Complete
3.72

Workflow from Website Contact to User

  • The objective here is to automate the process of converting a Website Inquiry into a User
  • Form received from client (in Website contacts).  
  • To do
    • Allow multiple entries on the checklist
    • Add field in Products for “Include in Contact Form” and references in the Contact Us form
    • Add input in CompanyDetails as to whether to receive an alert with a new Inquiry
    • And ‘Email’ text in Product form
  • Office_Staff decides to accept a Website Inquiry or not (perhaps automate this). 
    • Converting to User creates a New User with the credentials provided in the Website Inquiry. 
    • Sends a generic email
  •  
Complete
3.73

Server clean-up

  • Button to clean up the attachments for all directories
  • Button to import the mapicon files 
Complete
3.74

User

  • Default language - order by ranking
Complete
3.76

Photo Locations

  • New Photo Location creates an error
- Complete
3.77

Contact Us

  • Don't show the Interested in… and list of Products if there is only 1 product on offer
Complete
3.77

User

  • Reset passwords etc
- Complete
3.79

Edit the bat file to add the new project specific inflation 

- Complete
3.79

Company Details

  • Need to make email and Default password mandatory, if using the contact form. 
Complete
- Complete
3.82

Competitors

  • Improve field names
- Complete
3.83

Multi-lingual

  • Make the titles in Indexes language-specific
Complete
3.83

Mobile view - needs work.

  • CompanyDetails Show/Edit
  • Products
  • CMS- Edit/New is good
  • SubPage
  • CMSPhoto- index only
  • UsefulLinks - ok
  • Instructions -New
  • Weather -ok
  • Business contacts - New and Edit
  • Map Icons - edit
  • Facebook Groups - Index and Edit
  • Competitors - New

 

Complete
3.84

CMS Photos

  • It is possible to select Video for a JPG
  • When switching between Product and Static Page it keeps the Static Page name and therefore impacts the Save
- Complete
3.86

Clear all attachments

  • Button to clear public directory - assume that the directories will be made as files are saved for the first time?
- Complete
3.86

Photo Gallery

  • Email button doesn't work
  • Favoured/unfavoured button don't work
- Complete
3.87

Photos

  • Individual photo doesn't resize well when viewed by a mobile
Complete
3.88

Photos

  • In the CountService, for the CountPrivateLocations, don't just count those Private locations, but those where the user has access to
- Complete
3.88

Photo gallery

  • Don't open the photo-locations page unless an Admin and there are at least [15] different locations
  • Instead show the name (and date and # photos) of each location in the dropdown.  Listed either alphabetically or by date (make that a control in the Settings)
  • Then have the private groups listed, in red
- Complete
3.89

New functionality: Import from Outlook

  • I am building a system to manage client bookings and although i would prefer that clients book online directly, some do email me.  I would like to build the ability to import the content, subject line and sender and date from my email system (eg Outlook) email into a record in the database
  • My plans is that emails that need to be brought into the booking system would be moved to a specific directory (eg “Upload to system”) and these are the emails that the booking system would see and extract the data from.  The booking system would need access to the email 
  • I am using Symfony/PHP - how can i build this?
- Complete
3.90

User log

  • Build out a more comprehensive user tracking log.  Not just logins .  Google analytics
- Complete
3.90

Have in the Settings a flag for if site is still in testing mode.

  • If in Testing mode, then:
    • Login screen contains the test login buttons
- Complete
3.92

Photos

  • Handling HEIC photos
- Complete
3.93

Header

  • Photo Gallery and Photos appear twice in the Header if logged in as ADMIN
Complete
3.95

Project specific landing page post login for different access rights

- Complete
3.96

WhatsApp number

  • Develop a service that checks if a number is a valid WhatsApp number or not

 

- Complete
3.97

Products

  • Re-numbering/re-ordering button
Complete
3.98

Product list (header)

  • If there is only one product in the ProductList, then it should become the Header
  • Same for SubProducts

HomePage Contact Form

  • Still shows the DateTime sent.
  • Phone number should be optional

Workflow

  • Auto registration

 

Complete
3.99

Instructions

  • Control in Company Details to include a link to instructions functionality.   
  • Show in dashboard if selected. 
  • Include in Header display selections

 

Contacts details (Company Details settings)

  • Flag to include business card or not 
    • Business card to include only the information permissioned 
  • Perhaps include email as  

 

- Complete
4.00

User Indexes

  • Dynamic control of sorting in Index 
- Complete
4.01

Header

  • Useful links show/hide doesn't seem to be in all projects
- Complete
4.03

Project specific roles maintain in settings

  • Create an entity to define the roles available in the project 
  • Also in the User form, be able to control which fields are active as a function of the role
- Complete
4.04

Users

  • I introduced sorting for all the columns (ie post pagination functionality) for the Users index.   Curiously, some work but not all.  

 

Business contacts

  • Tried to insert the PhoneAnalyzer into Business Contacts, but it fails
- Complete
4.04

ROLES

  • Doesn't seem to work

User

  • Photo field showing when populated.   
Complete
4.05

Users

  • Link the list of fields viewable to the CompanyDetails settings
    • Home Address
    • Business Address
    • Personal Details
    • Job Details
Complete
4 Stephen-Nurse #: 3
Blocked
4.00

Flight Destinations

  • Add buttons to include/exclude
  • If excluded (inactive), don't include in scrape
- Complete
4.01

User profile

  • On all projects (e.g. stephen-nurse.com) I am continually having to run ‘backdoor’ to reset my rights. 
  • User_roles keeps getting deleted
  • I have renamed the roles to add a ‘2’ to them to see if that is the problem too

Roles

  • Login directions seems to have gone too. 

Helpful Links

  •  Helpful Links data keeps getting erased - this seems to have stopped (no reason why)  (happened again over the weekend)

Helpful files

  • Record remains but the attachments get deleted

Photos - Both CMS and Photo gallery 

  • Seem to get deleted

 

Pending
4.02

ToDoList

  • The list of projects at the top of the page look
    • If RoleAdmin show all projects 
    • Also for adding new projects
  • Allow non-admin to access the +/- button
  • Sorting broken
- Complete
4.02

Flight price download

  • Works on local, but not live
Pending
4.03

Logout time is too short

- Pending
4.03

Users

  • Duplicate users when importing from Outlook don't look too different
  • Deleting users creates an error
  • Add Recruiters-All
- Complete
4.03

To Do List

  • Clicking on a Project button should take you to the list by that project, but to the Pending items
- Pending
4.04

Photos

  • What photos and videos can I upload.  Different formats for photos and movies
- Complete
4.05

House Guest

  • New: If ‘Internal Note’ or ‘Block Out’ is checked, it should hide the GuestName.
  • Email alert doesn't work
  • I have multiple cycling.   Better done by a service?
  • Scrape seems have stopped working
- Pending
4.05

ToDoList

  • When you Save and Close a ToDoList entity it returns you to the Pending Items for that project
Complete
4.05

User import

  • Handling conflicts and allocation of contacts to Business Contacts
Pending
4.06

Photos

  • Only be able to delete your own photos 
Complete
4.06

FX Rates

  • Write a Service to find the FX Rates on the AsOFDate
  • Write a chron chron job to save the FX Rates each day
  • When updating the FX Rate button, show the date and also update the Historical FX Rates 

 

Total PVs

  • Total computation doesn't work.
  • Compute total in GBP or USD
Complete
4.07

Users 

  • Users: create a field for ‘ComingToLondon’ and Settings entry to type in the message
Complete
4.07

Days out of UK 

  • Compute the days in each country in UK tax year
Complete
4.07

Photos

  • Thumbnail view vs full view 
- Complete
4.08

Photos

  • Include name of uploader
  • Sort by favourite photos
  • View buttons. Favourites first. By uploaded by Show all or by user. 
  • Sort by who uploaded
Complete
4.10

ToDoList

  • Copy buttons
- Complete
4.11

House Guest/Flights

  • Include a date range for each flight combination
Complete
4.12

House Guest

  • Create ability to put in notes (eg need to fly to Frankfurt, dentist appointment etc)
  • Will entail having a ‘blank’ guest, which does/doesn't trigger a blockout period
Complete
4.14

CMS

  • Remove edit link (for Admin) and replace with a separate fa-pen link
  • Similarly for photos
  • Update CMS for the Interests pages
Complete
4.15

HouseGuest

  • Add a button to scrape the one destiniation/route only. 
  • Copy over to Immigration Services
Complete
4.16

Helpful files (File Attachments)

  • The “Notes” appear to delete upon saving
  • Ability to delete each file attachment individually
  • E-mail functionality only works in local
    • Check including multiple files
Complete
4.16

To Do List

  • The Project should be the default choice but editable.
- Complete
4.17

Londoner email

  • Londoner email functionality

 

- Complete
4.18

JPM share price

  • Ability to import JPM share price daily
Complete
4.19

Contact details

  • Remove the VCF if in Mobile mode
  • Add a QR code with my VCF details on the home page
- Complete
4.20

Useful links

  • Deleting useful links button doesn't work
- Complete
4.20

Useful links

  • Add an entity that dynamically allows new categories for useful links
Complete
4.21

Photos (tennis)

  • Why don't some of the photos show?

Copy

  • Improve the copy for various Interests pages
Complete
4.22

To Do List

  • Sort the buttons alphabetically in the New ToDoList by project name 
  • Change width and height to remove need to scroll
Complete
4.24

User View

  • Why do the buttons not spread across the page?
Complete
4.26

Users

  • PaulCoolen example. (paulcoolen@gmail.com, federer)
    • When he edits his profile, he shouldn't be able to change :
      • Company field  (rename as SN Category).  In fact hide this from the non-admin user
      • Londoner checkboxes
      • Save buttons- don't show the send welcome email button
      • Webpage seems to want to populate with my sn email address?
- Complete
4.28

Settings

  • Create a control function to determine if the various Interests tabs are shown
Complete
4.28

Tourist Attractions

  • Bug in the table 
  • Get GPS button
Complete
4.29

ToDo List

  • Include buttons at the top to show each Project 
    • Reduce the view to the list of ToDos in that specific project  
Complete
4.30

Todo list

  • Sort the list of Project buttons alphabetically
- Complete
4.32

Photos: Mobile version

  • Buttons, 
  • Full page view of the specific photo
Complete
4.33

ToDoList:

  • Can't delete a ToDo List item
  • Error message when saving a new ToDoList Item or deleting an item
- Complete
4.34

Travel Notes

  • Make it a long text format. 
- Complete
4.35

Helpful files

  • Main notes don't save
- Complete
4.36

ToDoList

  • Needs Research.  Field options should be:
    • No
    • Yes - Minor
    • Yes - Major (beyond skillset)
  • Include in view the Needs Research and Hours Allocated fields
    • :Research needed displayed as coloured blobs
      • No - Yes
      • Yes - Minor - Orange
      • Yes - Major (beyond skillset) - Red
  • Fast buttons:
    • Edit the Needs Research field
  • Hours Allocated field
    • Limited to positive numbers
    • Only shows when Yes-Major (beyond skilset) is picked
  • Move the Needs Research on the same line as Hours Allocated to prevent wrapping. 
    • Reduce Status, Hours Allocated and Needs Research to col-1 
    • No delete button?
    • Height is too high
  • Edit the title on the ToDoList to remove the words “Project item”
  • Create a Save, but don't close button? (equivalent to Control-S).  
    • Can one create fast keys?

 

- Complete
4.36

Photos

  • The page that directs users to the location of the photos doesn't work well on mobiles.  Reduce width
- Complete
4.37

Security

  • Photos link doesnt work for Sandra
Complete
4.38

Security on ToDoList

  • Buttons for only the relevant projects
  • Dropdown list of the relevant projects
    • Access rights to the Add ToDoList projects
Complete
4.39

To Do List

  • In the buttons, include a count of Pending items 
  • Sort by # of Pending items or can we sort the buttons by priority?
Complete
4.41

Photos

  • Clean up the photos directory in live server
  • When deleting a photo,  delete the file to save disc space
- Complete
4.42

Flights

  • Scrape time not in the correct format
  • New entity to define destinations. 
  • Button to create the “Return” leg that 
    • Add a new field for “Return leg”
    • And an Order field?
  • Numbering of routes to group them in pairs.  
- Complete
4.43

Guest View

  • Can I freeze the pane in a table
- Complete
4.45

ToDo List

  • Top Priority
    • Change Controller such that the list of ToDoList is only those that have a Top Priority Item . Lines 42-48 in ToDoListController
    • Top Priority field doesn't save
  • Add ability to add files to the ToDoListItems
    • ToDoListItems Controller line 95-110
  • Increase height of the box that shows the number of individuals who can edit a project. 
  • Cascade -  When you delete a ToDoList, delete all the associated ToDoListItems
- Complete
4.46

CMS Photo and Company Details not pushing through to Live

In Company Details hide the Favicon and QR fields when completed

Complete
4.46

ToDo List

  • Buttons to flag priorities as Top or not
- Complete
4.47

Flight destinations

  • Default is ‘IsActive’ = Yes; ‘IsAdmin’ = No
- Complete
4.48

To Do List

  • When a new Item is added, inherit the Project name from the location of the button
- Complete
4.49

Fixed Rate Deposits

  • Separate by category
  • Add a field for if an EBT (list the 3) so we can build a view of the value of the EBTs separately
Complete
4.50

House guest

  • Doesn't look good in mobile
- Complete
4.50

Why isn't ATS appearing in the list of projects in the ToDo List?

- Complete
4.51

Need to provide a MTM over-ride on the loans

- Complete
4.52

Tourist Attraction

  • Photo doesn't seem to work
- Complete
4.53

Weather and Company Docs

  • Link to GPS picture. 
Complete
4.54

File Attachments (Useful files)

  • Errors when editing
- Complete
4.55

Useful URL

  • Mark as either Public or Private
    • Private only viewable by ROLE_ADMIN
  • Doesn't sort when not logged in as Admin
- Complete
4.56

Helpful files

- Complete
4.56

Tourist Attractions

  • For both the download GPS locations, and the clear GPS locations, do an on-submit check
  • The desktop/mobile distinction doesn't work anymore
- Complete
4.57

Flight destinations

  • Add country to the airport, and sort the list
  • Ability to create a return journey with one click
    • Popup:
      • From,  To..
      • Then creates 2 entries, one outbound, one return, with a grouping of max current plus 1
- Complete
4.60

To Do List

  • Sort the Projects by their Priority rank.
Complete
4.61

All projects

  • Button that downloads the Live database to the Local version doesn't seem to work on all sites.
- Complete
4.62

Tourist attraction

  • Can't delete
- Complete
4.63

Login page

  • Remove the buttons to login on the live site  (all sites)
    • Not controlled by the env file, but by reference to the live server?
- Complete
4.64

Blood tests

  • Can't select by date
Complete
4.65

Medical Test Results 

  • Does not sort correctly
- Complete
4.66

Photos

  • Link may not work
- Complete
4.66

Base contains entity specific formatting  

  • Why do these have to be in base.html? Can we put it in the edit.html for each form? 
  • Would that be quicker?
  • This includes form specific details (Editor).  
Complete
4.68

Users 

  • Handling of Recruiters and other ‘role-conditional’ fields when editing a User
  • Birthdays: Cronjob that Sends email to SN to warn of a birthday next [3] days 
- Complete
4.69
Make to do list viewable on the phone
Complete
4.70

Useful files

  • ChkEditor added to base.html but didnt work when added to new and edit file.  Why?
  • Size of text box 
  • Email doesn't work on live, but works on dev
- Complete
4.71

CV

  • Upload, download and Email CV doesn't work
- Complete
4.72

To Do List:  List of Projects

-New button has wrong URL

Complete
4.73

Helpful links categories dynamic 

Complete
4.73

On local, no favicon 

Complete
4.74

To do list

  • Formatting of this section.  Why light grey - unreadable
- Complete
4.74

Map icon import fails (similar to Whistles and Bells)

- Complete
4.75

CV

  • Emailing of CV doesn;t work
  • Emailing of Useful files doesn't work either
- Complete
4.76

UK days count 

  • Colour coding for the background colour for the tax year
  • Ability to load up multiple attachments rather than just one
  • Day count on each line.  A service?
Complete
4.78

SQL Download

  • Error message on live  (works on ATS -Live)
Complete
4.79

Garmin files

  • ChekEditor
Complete
4.80

File attachments

  • Multiple files not updating
Complete
4.82

ToDoList Projects

  • LiveSiteWorking- Convert to string and include a N/A.
    • Enable sorting by  LiveSiteWorking
  • Sort ATSUpdateDate to include h:m
    • Show including h:m (to test)
  • Website link to correct for no https:   
    • And show only the part without https

ToDoList

  • Ability to collapse/expand a given project
- Complete
4.82

Events listener

  • Appears on bottom of every page
Complete
4.83

To Do List Item

  • The attachment field has fallen off the bottom
- Complete
4.84

ToDo List (Project Priorities)

  • Doesn't sort by ATS-upload date
Complete
4.85

To Do List

  • In the Projects list have a flag for whether the live website is working or not
  • In the ToDoList items, show that checkbox and in the title show the C:\dev directory name
Complete
4.86

To Do List

  • Delete button should take one back to the referrer page 
  • Saving a new item should bring you back to the Index but for that project only
  • Check what the grey number on the top left is indicating #…  Is it correct (i thought it was number of Pending items)
  • Save button at top of page to avoid need to scroll down. Immmediate Priority box can be reduced in size
- Complete
4.88

Recruiters

  • Firstly, before uploading the new User entity from ATS Template,  fix the current Recruiter links in the dashboard
  • Create new entity for Recruiter that is is linked to User
    • Includes Region, Priority and Area of interest and also tracks email sent and received
    • Creates a new User if User does not exist
      • User list export to Outlook includes the Recruiters.
Complete
4.89

Helpful files

  • New and edit can't change some fields
Complete
4.90

To Do List

  • Button to collapse all the projects. 
  • Pressing the Admin-ToDo List should trigger this button
Complete
4.91

ToDo List items

  • Format of rich text.  Can't see bullet points, colour etc
  • Make readable without a login, but not editable
- Complete
4.92

Project TO-Do List Priorities

  • Need the EditorChekr for the summary of each new project
Complete
4.93

Birthday

  • Cron job
- Complete
4.94

To Do List

  • Delete button shouldn't require a Check
  • In the Index, the indentations don't show
    • Second indentation
      • Third indentation
Complete
4.95

ToDoList

  • Error attaching attachments and deleting records
- Complete
4.96

ToDo List

  • Create a Save button that Saves the ToDlist item and reopens it. 
  • Perhaps show in red the latest saved time in the edit view next to the button
- Complete
4.97

User - Messages and Londoner

  • Create “Outreach” entity
    • User (relational)
    • Category
      • Visiting London
      • Festive message
        • Festive message
        • Message sent timestamp
      • Recruiter
  • Create “OutreachTemplate” entity
    • User Category 
- Complete
4.97

Flights

  • Deleting a destination should delete flights
  • Copy destinations 
  • Multiple destinations 
Complete
4.99

Flying 

  • Add save and re-edit button to the flying entity
  • Add a file attachment 
- Complete
5.00

Email

  • Email to be able to be sent from the logged user rather than the same email address for all user
Complete
5.01

Helpful files

  • In show, it shows the attachment icon when it is null.
  • Widen the notes column in view  - test on mobile
Complete
5.02

ATS Update (Paginator)

  • Causes an error
  • Note the additional processes needed for all updates (save in update.bat in notes)
- Complete
5.03

ToDoList Items

  • Move the buttons at the bottom of the page to the top and stretch the Task box longer and full screen width
- Complete
5.04

Emails - Chron job?

  • Emails getting sent and returned?
- Complete
5 Whistles & Bells #: 1
5.01

Client export function

  • Export all clients or VCF, that aggregates across both the User, Client and Dog entities.
  • Contact form included that will upload to client CRM  (checking for duplicates)
  • Client contact details (and notes re dog) can be exported to a VCF or CSV so you can upload your client details directly into your phone/contacts (so you recognized in-coming calls/emails etc)
Pending
5.01

Client Details

  • Hide Long and Latitude as an input.  
  • Show map icon
  •  
- Complete
5.02

Whistles and Bells

  • New Dog, New Client Details
Complete
6 XVA Consulting #: 0
6.01

Introduction

With a career spanning several prestigious institutions, I have accumulated a wealth of experience and expertise that can be of significant value to your organization. I invite you to explore my journey and accomplishments in various roles across the financial industry.

During my tenure at JPMorgan, I led a transformative initiative within the Clearing and F&O business. By introducing front-office risk-management and pricing discipline to this previously considered "agency" business, I successfully revamped the risk and capital infrastructure. This endeavor resulted in doubling the revenue of the Clearing business while reducing the capital, GSIB, and residual interest footprint. Notably, my team's contributions led JPMorgan to win the Risk award for best OTC Client Clearer in 2019 and 2021.

Prior to that, I played a pivotal role in implementing funding adjustments (FVA) and lifetime cost of capital (KVA) for the derivative franchise globally, which had a substantial impact on the firm's performance. Furthermore, I spearheaded the introduction of single and multi-currency OIS discounting for collateralized derivatives, establishing a centralized firm-wide utility for managing funding risks across all lines of business and regions.

 

 

XVA

1. Collateral optimisation/CSA renegotiation/Differential Discounting (DD) recognition

The idea of capturing value in trades through recognition of different eligible assets (i.e. initially the issue of moving from Libor to OIS discounting, but also extending to other assets in the CSA) has been well known since around 2009-10 (when GS reputedly made the majority of their FICC revenue optimising for this). Most dealers have updated their systems to avoid this arbitrage in their bilateral business (crystallizing considerable costs for the late movers). 

However, this concept is not completely efficiently captured in every aspect of the market, for example where the trades are “given-in” under a Clearing Agreement. That market is a post trade approval market and essentially DD-agnostic and hence it is still open to arbitrage.  Specifically, when a client goes to market, the Executing Broker (EB) prices the trade according to their DD curve facing the Clearing Agent. These can be different from different EBs, and is not the same curve as the DD curve the Clearing Agent has with the client. So, in effect, the trade is priced on the “wrong” discount (DD) curve and a client could potentially identify backwardation opportunities particularly for trades with large funding deltas.  

2. CVA mining and IM optimisation – XVA Hub

Should a corporate or hedge fund have any uncollateralised risk, a Central Hub function could help mine bank’s CVA reserves where there are offsetting risk and or credit deltas across counterparties.

Similar to CVA mining, moving trades between counterparties can optimise the availability of the $50m threshold under the Non-Cleared Margin Rules (NCMR), reducing total IM funding needs.   For example, if their cost of debt is 5%, adding 5 dealers and optimising for threshold could save 5*$50m*5% = 12.5m per annum

Another specific variant of the IM optimisation idea is to convert Cleared IR delta into uncleared put and call swaptions, where the IM can be bilaterally negotiated and offset bilateral risk. In essence, it can result in free funding.  

A large hedge fund, recently set up a Central Hub to manage the relationships and XVAs with all their dealers, to prevent unnecessary credit costs/exposures and to minimise margin funding costs.

 

- Complete
6.02

Consulting Services in CVA and XVA: Issues and Offerings

As a highly accomplished derivatives risk manager with extensive experience spanning trading, marketing, and risk management at JPMorgan, your expertise uniquely positions your consulting firm to offer comprehensive services in the field of Counterparty Value Adjustment (CVA) and XVA (X-Value Adjustments). Drawing from your vast experience, your consulting firm can address a multitude of critical issues and provide valuable insights to clients in the financial industry. Here's a detailed exploration of the issues and offerings your consulting service may provide:

CVA and XVA Methodologies and Implementations:

  • Offer guidance on implementing and enhancing CVA and XVA methodologies, leveraging your experience in pioneering CVA trading and defining philosophies for derivative counterparty risk management.
  • Provide expertise in designing and implementing systems for comprehensive XVA calculations, including CVA, DVA (Debit Value Adjustment), FVA (Funding Value Adjustment), and others.

Market and Regulatory Developments:

  • Stay abreast of evolving regulatory frameworks related to counterparty risk, including Basel III and IV, ISDA SIMM (Standard Initial Margin Model), and other regulatory changes impacting derivatives trading and risk management.
  • Offer insights into regulatory changes affecting non-cleared margin requirements, capital metrics (e.g., SLR, LCR, NSFR), and their implications on derivatives pricing and risk management.

Risk Management and Optimization:

  • Provide guidance on optimizing counterparty risk management strategies, incorporating differential discounting and collateral funding optimization techniques pioneered during your tenure.
  • Assist clients in developing comprehensive risk management frameworks to mitigate credit, funding, and capital risks across the entire derivatives portfolio.

Product Structuring and Pricing:

  • Offer expertise in structuring complex derivative products tailored to clients' specific risk profiles and investment objectives.
  • Provide pricing analytics and model validation services for structured products, drawing from your experience in executing derivative transactions for structured finance businesses.

Client Clearing and Margin Optimization:

  • Assist clients in optimizing client clearing operations and margin requirements to enhance profitability while maintaining risk discipline.
  • Provide guidance on establishing market risk-aware pricing frameworks for client clearing services, based on your experience leading the implementation of FVA (Funding Valuation Adjustment) and KVA (Capital Valuation Adjustment).

Technology and Infrastructure Enhancement:

  • Offer guidance on technology and infrastructure enhancements necessary to support advanced risk management and pricing analytics, leveraging your experience in technology and infrastructure change management.
  • Assist clients in implementing cutting-edge risk management systems and tools to streamline operations and enhance decision-making processes.

Industry Engagement and Thought Leadership:

  • Provide thought leadership and industry insights through participation in industry forums, conferences, and regulatory initiatives.
  • Offer bespoke training and educational programs to disseminate best practices in CVA and XVA methodologies and risk management techniques.

Client-specific Solutions and Advisory:

  • Tailor consulting services to meet the unique needs and challenges of individual clients, spanning investment banks, asset managers, hedge funds, and other financial institutions.
  • Offer bespoke advisory services to address specific client concerns, such as optimizing derivative trading strategies, managing counterparty exposures, and enhancing regulatory compliance.

In summary, your consulting firm's offerings would encompass a broad spectrum of services, ranging from methodological expertise in CVA and XVA calculations to strategic advisory on risk management, regulatory compliance, and technology enhancements. Leveraging your extensive experience and thought leadership in derivatives risk management, your firm is well-positioned to provide invaluable guidance and solutions to clients navigating the complexities of counterparty risk in derivatives trading.

- Complete
6.03

Consulting website

  • Create a new website that is largely a billboard site.  Call it “XVA Consulting” 
  • Create a live website and SSL
- Complete
7 LinkedIn Export #: 3
7.00

Scrape

  • When a LinkedIn contact has something unusual in their name (eg the maiden name in brackets, or a same or PhD in brackets) then it fails to allocate the first name and last name successfully.  
    • Suggestion:  Take anything in between brackets and delete (including deleting the brackets)
      • See attachment for examples in my Connections list (6 out 1,222 ‘fail’)
  • Scraping of gender from linkedIn needs to be trimmed for it to be effective - returns “…….She/Her……”
    • Let's test it

Settings

  • The settings for MaxLinkedInContacts and LinkedInScrapeBatch don't seem to be effective.  We should use these fields to reduce the initial scrape to make testing quicker

Popup Message

  • The popup message appears each time your launch Index - “There are 1222 connections. The system pulls data in the batch of 20 per hour. It will take approximately 62 hours or 2 days and 14 hours to completely fetch all the data of 1222 connections. Our system will auto pull data in the interval of 1 hour. You can check status in every one hour. To continue please start the process.”

 

 

Complete
7.00

Users

  • In the User list, show:
    • An icon if they have verified their linkedIn name and we have the cookie
    • Their number of connections
    • If they have downloaded them
- Pending
7.01

Basic Contact scrape - handling names.

  • “David A. Lewis” should be David Lewis
  •  
- Pending
7.02

The Scraper buttons

  • Currently the code tracks the status - basic details scraped, then full scrape. I think we need to consider how we refresh the basic scrape (check # connections count?) to see if a new scrape is required

 

So how should it work

  • First time use:
    • Hide “Import and Email button”, and “Export” and "Email" buttons
    • Hide Connections Scraped info button
    • Scrape button should show: 1) Import Connections.  
      • This should popup the following text box:  “Step 1.  Our servers will now login to Linkedin and pull in the basic details of all your [1,234] connections. …..”
      •  

 

 

I have a system that allows users to scrape their LinkedIn connections and export the results as a VCF or XLS. The result is that their LinkedIn connections are in their contact lists, on their phone etc. Technically it works by initially scraping the basic details of each of the user's connections and then subsequently the server opens each connection and scrapes all the details in full (education, employment, languages etc). The first process takes a few minutes only. The second process can take hours or days depending on the number of connections. To avoid the anti-scraping policies we have to do them in batches with a delay between each batch, hence it can take days.

I need help to do the following: Design buttons that logically walk a new user through this process. The buttons can appear/disappear as appropriate. What should the buttons do? So my thoughts were that the Scrape button should initially say “Scrape” and it will popup with the following message “Step 1. Our servers will now login to LinkedIn and pull in the basic details of all your [1,234] connections. This will take a few minutes. After that process you will be able to see the basic details (name, photo, current position) of each of your connections in the index here. However, the ”full scrape" (resulting in Employment, Education, and other details) will take time (about [3] days), as it is done in batches. Once complete we will email you to let you know (on xxxx@xxx.com) and you can view them all in the index and download VCF for use in Outlook or XLS for more detailed analysis. You can login and check at any time the progress. Would you like us to email you progress reports or simply when complete?"

I was wondering if i should then show a second button “2) Initiate full connection-level scrape” or whether I should just go ahead and initiate the process. I also have a display that tells them progress so far. Do you agree with that approach or how can you make it easier. I also need to build a process to update the download - how should i handle that?

 

- Pending
7.02

Linkedin icon

  • Change gitignore or other solution to make the LinkedIn icon show
Complete
7.03

Cookie view

  • Add in the dashboard the list of cookies (was user_password)?   
  • Perhaps show in the user list if the cookies are not added
  • Create a help email for users to add their cookie
Pending
7.03

Exports

  • For the PartnerFirm export add extra columns to the XLS export
    • Name of PartnerFirm Users who is connected to the LinkedInContact
  • Solve the multiple VCF export 
Pending
7.05

Scheduling the scrapes

  • Schedule the scrapes to run in batches (e.g. 20 at a time, once every 6 hours - i.e 80 a day -  to minimise the chance of LinkedIn security blocking the IP
    • I recognise that for  someone like me with 1.5k contacts, the process will take ~20 days, but that is ok. 
      • Perhaps email progress report (and a file with a subset of the users) after each run  with the updates so far  (once we have fully tested this)
  • I have created a linked-inexport@atts-systems.com email address (password Descartes99) for the email to be sent from
Pending
9 Flight Database #: 2
9.00

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
9.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
10 Commercially GPS tracker #: 0
11 Financial Advisor #: 1
10.97

Updating contributor site

  • Rich text editor for the Summary and Comments fields
- Complete
11.01

Financial advice and also generic website template

  • Create a copy of SN, and strip out all non-investment sections
  • Then copy and strip out everything except the user, CMS and basic framework
- Complete
11.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
11.02

News coverage

  • Include useful market information page with podcasts from our top providers – e.g. Merryn@FT;  Prof G.  Include date and link, and summary of the content and my commentary.      Important for social media engagement 
  • Link to news scrapper
Complete
11.02

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
12 Tennis Club #: 9
11.95

CMS

  • Change CompanyName etc to ClubName etc in all forms etc
  • Work on the Index page, and maybe use a table  
  • Rename Twitter to X.  Update icon
Complete
12.01

Create a unique page for a user, that doesn't require a login and allows them to sign up for sessions 

Pending
12.02

Premiership table view of players

  • Show last 5 wins/losses
  • Button for Single or Doubles
  • However over for date, player, score

Scrape ITF player rankings weekly 

 

Pending
12.03

User

  • When you register for the club as if permanent or temporary login.  
    • Have feature that emails logged members with expired memberships to remove them from the main list. 
  • Field.  Temp membership - date.  And remove those from the drop-down menus etc. 
  • Prepare a confirmation email to be sent to all bookings (each night and upon making the booking).  In terms of the reference I don’t think we can use the court availability I’d as that changes if they change court. For the coaching booking that can work though?
  • When a new user logs in, have a field that asks if they are a temporary visitor or a long-term member
    • Field:
  • Add Google Analytics
Pending
12.03

Users - Delete All

  • Doesn't work
Pending
12.04

Box leagues/ladder

  • Add ability to  run a box league 
  • Look at https://boxleague.net
  • == entity: tennisClub
  •       Name, address, tel, notes, administrator, toilet, GPSlocation, parking, bar, changing rooms, showers 
  • == entity:   boxLeague
  •       tennisClub (relation), box league number (1, 2…. x), sets, promotion count, demotion count, date for completion 
  • == players
  •       Member of a specific box league at a specific club(s)
  •  Box league then creates a list of fixture (grid), allows the users to enter their own score and.or the administrator. Includes walkover 
  • Computer the winner/loser 
  • Computes next season starting point. 
Pending
12.04

Users

  • Have ability to create a user from an Outlook lookup.  ie press a button to call up Outlook and search your VCFs and import in the necessary fields
Pending
12.04

Management reporting stats pages 

- Pending
12.08

Other

  • Approach public schools to ‘rent’ their tennis courts over the summer
  • Simultaneously book a Court(s) for Coaches and for Group Sessions. 
    • What happens if the court is not free?
  • For a coaching session book a clay and a hard court and release one when booked.  And release the backup 24 hours before the lesson
    • When adding a tennis Group Session that is chaperoned by a coach, add that to the coaches calendar too. 
    • Cancellations of a coaching booking would free up the coach/court (or back to the ‘bagsy’)
      • Q:  When should the system release a court if the coach is not booked and there is demand for the court (ie when does the bagsy run out)?
      • Q:  Should the coach reserve a hard or clay court.  How should you handle a client who wants to choose (suggestion - the coach bagsies a hard court and if available at the time of booking then it can move to a clay).  Do you want to differentiate between courts (eg 8v 9 etc)?
  • Add calendar invite when someone makes a coach or session of court booking
  • Have a tennis coaches view that shows today and tomorrow, that is not password protected (but hidden link) allowing the coaches to see their calendar with 1 click.  Make it work on phones
    • Q: What phone do Wyn, Steve, Elena have?
  • Decide order of priority for court usage
  • Show account balance/kitty in Header 
  • Improve ergonomics of the the coach bio page.
    • Ask Wyn for a bio, 2-3 photos and a video  for him Steve and Elena
  • Track no-shows
    • Q: Should a “no-show” prevents new bookings for [x] weeks.  On the first/second/third strike?
  • Track canclled bookings? 
    • Cancel bookings should be saved in a new entity and perhaps tracked.  What limit to put on that?
  • Flexi memberships: Track number of flexi court vouchers remaining
  • Compute/summarise:
    • Court stats by month (# $$$)….. Hard, clay by hour - broken down by the DoW and hour.   ie should you change prices at different times of the day to balance the loads better
    • Coach stats by month (# $$$)
    • Member stats by month
      • Number of court booiings, number of coaching and group sessions. 
      • Which members break-even vs their membership cost etc?  Should you increase/decrease the annual subscription?
  • Membership reminders
  • Excel import/export of all users to upload members for the admin - test
  • Ability to process emails into a booking easily.
- Pending
12.08

Tournament

  • Create the draw and the matches 
    • Including scheduling futures rounds
  • Show the contact details of one's next opponent
Pending
12.10

Formatting

  • Photo handling on the Interests page
  • Background colour on footer and header
  • Height of the header, overshadowing the content
Pending
12.11

Tennis Court Availability

  • Future bookings count - had to change
- Pending
12.11

Bugs to fix

  • Group Session Index - how do I sort them differently if logged in or not (different column count)
  • My availability grid and the  “I am away button” (line 110 in Index).  Seem to have lost the functionality on these buttons altogetherPayroll
- Pending
12.14

Payment

  • Stripe set-up
  • Handling of visitors - visitor fee applied to members Tournie and leagues Platinum vs good memberships
Pending
13 Criminal Record Checks #: 1
12.97

Text for CRC

Application forms can be obtained through the Internet from the official Police website: www.police.gov.cy - Previous Conviction Registry

Every application must be accompanied by:

  1. An official receipt for the payment of the amount of 420.00.  The payment could be made:
  • in cash at any Divisional Police Headquarters or at any Embassy or Consulate of the Republic of Cyprus
  • remittance to the Central Bank of Cyprus in the name of the Chief of Cyprus Police
  • (SWIFT CODE CBCYCY2NACC, Government General Account, account no. CY1600 10000100000000006001010) -only in Euro
  1.  Identity Car, Passport, for Cypriot citizens
  2. Alien Book, Pink or Yellow and passport for Aliens
  3. Written authorisation in case that the application is submitted from a third person besides the applicant.

Note: The content of this application are subject to the provisions of the General Data Protection Regulation (EU) 2016/679 and of the Law 125(1)/2018

Pending
14 Irish Passport Consultants #: 0
14.01

Add a new project and site called “IrishPassportApplicationExperts.com”.

Copy from ATS

- Complete
15 Chartwell Court #: 1
15.08

 

New project: UK Flat Management Company

  • Property
    • Address
    • PostCode
    • Current Management company
      • Produce a front page
  • Flat
    • Flat number
    • Bedrooms
    • Bathrooms
  • User
    • Name
    • Email
    • Mobile
    • Tenant/Owner
    • Flat number
    • Show to other resident
      • No details
      • Name
      • Mobile
      • Email
    • Photo
    • How to link other adults in the house
      • Add adult (creates new User)
      • Add child (creates a new Child User)
      • Pet
  • Committee
    •  
  • Motion
    • Proposal
    • Votes 
Pending
16 Tennis Groups SetUp #: 0
17 TechArete #: 0
17.02

Backup

  • Is there a way to export the live database and upload it to local an automatic basis
- Complete
17.03

Company Description: TECHARETE SYSTEMS LTD.

Techarete Systems Ltd (‘Company’) is a pioneering technology company headquartered in Cyprus. The Company specialises in the development of cutting-edge software solutions designed to transform client booking and CRM systems used in various industries. Our commitment to innovation, efficiency, and customer-centricity drives the creation of software that optimizes resources, enhances marketing potential, and revolutionizes how businesses manage their booking processes.

Vision and Mission: At TECHARETE SYSTEMS, our vision is to empower businesses with innovative software solutions that not only streamline their booking processes but also amplify their marketing potential. Our mission is to be a driving force behind positive change, leveraging technology to optimize resource allocation and deliver unparalleled user experiences.

Core Activities: Our core focus lies in the creation of advanced software solutions that cater to diverse business needs. Our expertise extends to industries such as sports facilities, medical centres, and transportation. Through our solutions, we bring efficiency, convenience, and precision to the booking experience and improved economics for all parties. 

Optimizing Resources: Our software solutions are designed to optimize the allocation of resources. In sports facilities, we ensure that every booking maximizes facility usage and minimizes conflicts. Our software streamlines appointment scheduling, resource allocation, and client management, leading to enhanced operational efficiency. In the transport industry, our software enhances dispatching, route optimization, and customer engagement, resulting in better resource utilization.

Enhancing Marketing Potential: TECHARETE SYSTEMS' software solutions go beyond functional enhancements. We recognize the importance of marketing in today's competitive landscape. Our software includes features that empower businesses to showcase their services, promotions, and special offers, thereby increasing their marketing potential. This integrated approach enables our clients to not only manage bookings effectively but also to attract and retain customers more effectively.

Innovation and Growth: Innovation is at the heart of the Company. We pride ourselves on staying ahead of industry trends and technological advancements. Our dedicated team of experts, including software engineers, UI/UX designers, and data analysts, continuously explores new avenues to refine our solutions and introduce features that drive growth and innovation for our clients.

Collaboration and Partnerships: Collaboration is a cornerstone of our approach. We actively seek partnerships with industry stakeholders, valuing their insights and needs. By working closely with our partners, we co-create customized solutions that address specific challenges within each sector. Our collaborative spirit extends to businesses of all sizes, from startups to established enterprises.

In conclusion, Techarete Systems Ltd. is synonymous with innovation and transformation. Our software solutions are designed to optimize resources, enhance marketing potential, and elevate the booking experience across industries. With a strong commitment to excellence and customer success, we are excited to shape the future of booking systems and contribute to the growth of businesses across the globe.

- Complete
17.03

Page

  • The pages for each product don't look great on mobile
Complete
17.04

No password hasher has been configured for account "App\Entity\User".

Complete
17.04

Create a “The Team” page

Complete
18 TennisFinder #: 11
17.97

Payments

Pending
17.99

Cancellations

  • Re-use a cancelled court?
  • Setting up a 1st reserve for any cancellations 
- Pending
18.01

Other sites

- Blocked
18.01

Court reservation

  • In the popup to book a court,in the title confim the venue and time (to reassure the user that they clicked the right button) and include the court surface and floodlight data
  • Where the surface and floodlight specs are consistent for all courts  at a venue, display in the title.  When different by court, display at the court level.

 

Complete
18.02

Court and Player Availability

  • Courts and players view needs work
Complete
18.02

Management statistics

  • History of court usage
  • The states of the court are:
    • No data => 1
    • Available => 2
    • Booked => 3
    • Closed => 4
  • Lifecycle (assuming not closed): 1>2>3
  • What do you need to know
    • New fields:
      • A) timeFirstScrape - Done
      • B) timeCourtReleased - Done
      • C) timeCourtTaken (ie time on a scrape  when the court was Available before but is now Booked) - Done
    • Compute
      • SnapUpTime:  (C-Max(A,B))
      • LeadTime: (PlayTime-C)  - Done
Pending
18.02

Meeting new players.  

  • E-mail functionality test
Blocked
18.02

Tennis venues

  • Complete update of all venue details 
- Complete
18.03

Other

  • Courts and players view needs work
Blocked
18.03

Bookings

  • Allow non-logged in users to book (ie straight to CC provider, take email)
  • Email confirmation
Pending
18.04

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
18.05

Handling a VIP booking (e.g. Jamie Delgado)

- Pending
18.05

Helpful links

  •  https://breakstolove.com/
- Complete
18.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
18.05

Tennis court availability

  • Include the links to the clubspark site from the Expanded day page
  • Include the titles (Today, Tomorrow, This Week, Next Week, Following Week) in the tab and the title
    • Colour code the buttons to illustrate the current selection
  • Shrink the row height to minimal level to allow more court availability to be seen on a single page
- Complete
18.06

Tennisfinder 

  • Tennis Venue entity:
    • For the 129 MyCourts clubs, can you try to convert the Longitude and Latitude data that we captured into the “embedded html” needed for the maplink, so the map-marker icon works?  
    • Can you run the postcode distance calculator for one player across all the MyCourt clubs to see if they all ok compute
    • The Map All button (showing the position of all the Active Courts on a single page) doesn’t seem to include the MyCourts clubs  
  • MyCourt Scraper
    • Can you build a scraper to extract the Court (whether tennis, squash or badminton) Availability for the “MyCourts” clubs
    • Can you bring in the data as to whether it is available and the price if it is a given
  • Booking a Court (ClubSpark)
    • Can we test the client emails when you book a court
    • Can you look to see if you can complete the single-click book for the courts?
  • Complex reservation (multiple days where we book the first court that comes available)
    • Can we create a chron that runs through all the complex reservations and makes a booking (and cancels others) that meet the criteria. For example,
      • If the #1 preference is free it books that and cancels the others
        • Question:  Do  we wait for all the first choices to be available before ‘hitting’ a second choice?  Or do we go through each hour and hitting the best one?  (Do you see the problem?)
          • Perhaps we should make that a question :  “Would you like us to immediately book a non-first preference option if there are some courts at your first preference still to be released? Be aware if we then wait those second/third/fourth choice options might have gone?”
    • We also have to think about how we use the bidding process...  
      • For a single venue/hour…. Do we give them a choice of court, or any court?
      • And do we charge the full bid price, or the next best bid +£1? How will the client know? Do we show the current highest bid  to encourage a higher bid- Yes?  And do we tell the first bidder that they have been out-bid?
      • I think we just take the full amount and the client
Pending
18.06

Booking completion

  • Complete the ClubSpark scraping functionality
    • One-click booking
    • Cancellations 
- Pending
18.06

Venues

  • Add a new field - “Details checked”
    • Display as a tick for Admin users
  • Add button to reset tick and also a refresh all button that sets all the fields to TBA
  • For various inputs (toilet, parking, floodlights etc) add a “TBA” option to the choices
    • In view, if TBA, show as a grey question mark
  • Add a photo of the venue
Complete
18.07

Tennis Venues

  • The import function does not respect the CheckedDetails and IsActive flags
  • Tennis Venue index doesn't sort in non logged in mode
  • Increase column height on Travel Directions and reduce the Maplink one

 

- Complete
18.08

Splitting the court cost bill

  • One person will have to first buy the court, but the functionality I want is for that person to then be able to split the bill across the other players
    • Create a “My Bookings” link - that shows the bookings where the logged-user is one of the players (either player1, player2, player3 or player 4).  
    • This view shows who has currently paid for the court (and the split after some reallocation) and includes a button that “Pays my share”,
    • That process involves the non-paying player(s) to send their share of the cost to the kitty of the person that paid the bill.  It will shows as a like a TopUp on the account of the recipient and a debit on the Account of the sender 
    • Email functionality to send a reminder to the non-payers
- Pending
18.08

Tennis venues

  • Add a Court Surface entity, containing court surface and also floodlight, so we can identify by court the surface and floodlight status - may not be consistent across all courts at a venue.  
Complete
18.09

Complex  Reservations

  • Allow a user to specify one of multiple venues/tennis and a court ranking preference
  • 1 or 2 hours. 
    • Ok for just one hour?
    • Book as soon as any are available or wait for preferences to be released?
Complete
18.09

Tennis Venues

  • Show the court surface/floodlights details in the booking popup
Complete
18.10

ATP tickets

  • include a link that contains the Wimbledon/French/Queens/Boodles tickets (and to tennis club site) 
    • Import export to csv to aid importing of data
Complete
18.10

Overcome the IP blocking issue

  • Proposed solution is to scrape using a local copy of the site that posts the results to the live site
  • Question: How do we overcome the IP block that is applied to our site for the making of bookings?  is the IP address already blocked?  Note this will be far less frequent than the scrape, so we could use a dynamic IP address for that component of the site as the volumes will be far lower?
Pending
18.12

Tennis coaches

  • Create an user-type of “Aceify Coach”
  • When selecting a user, also select their chosen coach
  • Show the coaches bookings on the court screen.  
  • Book court in name of coach, and cc the player
Pending
18.12

Venues 

  • Show all venues on a single map (multiple dots)
- Complete
18.13

Scraping

  • Check performance now we have 20+ sites live
  • Complate the ParkSport scrape (very similar to ClubSpark) 
Complete
18.13

Scraping

  • Solve how to “prompt” a court availability scrape from the live site
  • Scrape history view not working
Pending
18.14

Hit with me

  • Players upload a video of their game
  • Gets rated by a coach (£2 charge)
  • Grid of pricing for player vs others for relative standards Punter playing brings the balls and the court. 
  • No show - cost of court and a fine of 5quid 
Pending
18.14

Bug - Tennis Venues

  • When you edit a venue and delete the photos and then resave new photos, then the ‘old’ photos get shown
  • So the delete photo button should either delete the file, or the edit button should replace the file when re-editing  
Complete
18.15

Bug fixes

  • Error message shows when Adding a new Venue
  • Error message when ‘signed-in’ as an Aceify client – looks to be with the mileage to courts?
  • Court view – check the display of the floodlight and surface data (I saw some were missing in the demo)
- Complete
18.16

Email functionality

  • Work on the confirmation emails
    • Punter confirmation
    • Complex reservation
    • Aceify booking
Pending
18.16

Court view

  • Include the court utilisation stats (e.g. 3/5) – perhaps as a bubble?  Kill the £ sign and roundup the price (for Aceify only) 
  • On the expanded day view show the court surface and the floodlights
- Complete
18.17

ClubSpark

  • Buy smart card per venue. Limit bookings to one per day and 5 per week per smart card to avoid scrutiny. 
- Pending
18.17

New venues

  • Define the defaults and make fields nullable to enable quick saving of new venues (partially done, but need to change the Edit function)
  • Import: MyCourts venues 
Complete
18.17

Complex reservations

  • Allow users to book repeat reservations targeting mutliple venues, where their choice will prioritise either the venue or the times or the time on court 
- Pending
18.18

Meet new players 

  • E-mail functionality test
  • To make contact with a new player, the system should not show their email/phone number, but rather wait until the recipient has accepted the request  
    • Show list of reach-outs in my Connections list as Pending.
      • Mark contacts as Agreed(tick), Pending (?), or Rejected (cross). 
  • Ability to download a Outlook contact file
Pending
18.18

ATS Template upload

Complete
20 News-scrapper #: 4
20.00

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
20.01

Update scrapers which have broken over time

WorkingNot working
  • CNBC
  • Teletrader
  • FT Markets
  • Economist
  • FIA
  • Matt Levine
  • ISDA
  • BIS
  • Clarus
  • Economist Expresso
  • FirstFT, FT Main
  • Reuters
  • Economist Special Reports
  • Risk
  • EACH
  • FN
  • Global Custodian
  • Securities Finance
Complete
20.01

Set up a Payment gateway- Stripe? 

Pending
20.02

Favicon

  •  Not working, both in bookmark and in tab, but only when on the home page… Odd
- Complete
20.03

Login

  • Add ability to register
Complete
20.04

LinkedIn export

  • Notes need to include the Employment and Education details
  • Searchable text for mission statement
  • Export function seems to be failing
Pending
20.04

Deleting LinkedIn Users

  • Delete MY Linkedin contacts should not delete them but mark them as hidden
  • How to handle when we have a contact shared with multiple "owners"?
- Pending
20.04

User Password checks

  • Need to develop an algorithm to check the passwords upon login
- Pending
20.05

Formatting

  • Login button
  • Subscription page to show when not logged in
  • Ability to look at each headline
  • User Edit page -
    • Show categories
    • Button to delete photo
    • Show photo
    • Hide Status from user
  • New stories
    • No like/read buttons
- Complete
20.06

User-specific summary email

  • Once the broken scrapers are fixed, the main ‘ask’ is to make it “user-specific” (ie each user can define their own list of stories and categories to include in the summary email). So the following need to be linked to the logged user:
    • Headline categories (eg Macro, CV19, Corp, Cryp, Pol, Ukraine, Clearing, x)
    • What to include/exclude for the email
    • What economic stats are key to them
    • Their own list of favourites and commentaries
  • At the moment each of these fields are attached to the news article so we need to create a User-News field relationship to achieve this.  Does that make sense to you?
Complete
20.07

Settings

  • Add VCard code (Jeroen)
- Complete
20.08
  • Review of security (Dashboard -changed to ROLE_USER)
Complete
20.08

Scrape content

  • Check that the scraping of all the news sites works
  • Also ensure that the content and not just the headline are scraped saved in the ‘fullContent’ field in the news entity.
  • In the view, hovering over the title will display the full content
  • For websites where the content is behind a firewall, then login and scrape where available.
Pending
20.09

Removed the CMS and Settings entities

Why isn't LinkedIn password appearing on the list in a User's profile?

- Complete
20.10

Read count

  • The new count needs to be user specific. 
  • So this is the number of unread articles in the past 24 hours by user.   Service by user and source
  • The read all button should not affect archives
    • Perhaps in archive you can have unread shown separately. 
- Complete
20.11

Market Data

  • Future T+2 data….  
Complete
20.12

Economic stats

  • Highlight and suppress buttons not working
  • Button to use the Teletrader defaults
  • Button to remove your highlight or take standard
  • Or if blank use the default - over-ride
Complete
20.12

 New sites to scrape

- Complete
20.13

LinkedIn:

  • Popup that checks that the LinkedIn login and password are successful
  • The first result should return the number of connections and estimate the time to download them, before proceeding.
    • Advise the user how long it will take to download and that a file will be emailed to them 
  • Email csv file - one-step directly after the scrape -  ie save a file in the database at the end of the scrap and email (ie merge the 3 buttons we have)
- Complete
20.14

Favicon

- Complete
20.15

Subscription page/Memberships

  • Check whether a user has a membership upon opening the Subscription page
    • If not, create a New membership, initially a Free membership
    • The new Membership button shouldn't open the form, but just save the details as per the button
      • Include Today's date 
      • The new membership button shows all users to Non-Admin users
- Complete
20.15

Pricing

The functions of the website are

  • LinkedIn scrape
  • News:
    • Single place to read articles
      • Summary access only
      • Hover for full article
    • Abilty to mark articles as read, to avoid re-reading
    • Abiliy to select key articles and send summary email 
    • Mark economic stats as favourite - to generate an email
    • See what others are liking - are you missing an important well read article?

 

  • Summary Read-only  
    • Full articles available via a link 
  • One-stop Read access
    • However
      •  
Complete
20.16

CompanyDetails

  • The HideOther inputs not coming through into Live
- Complete
20.17

Bugs

  • subscriptions_buttons line 45
    • Make this dynamic?
  • source\index line 43
    • Make this dynamic?
  • Favicon issue on live (when favcicon file exists)
- Complete
20.18

Bugs

  • Merge the ‘Highlight/Standard/Low’ buttons into a pop-up.  To avoid confusion. 
  • Set User bug in Market Stats
Complete
20.20

User

Add time zones

Complete
20.21

LinkedIn contact export

  • Develop a view of the contacts that can be expanded/contracted [like Excel]
  • Import photo and save file
  • Export file - two types: Full CSV and Outlook
    • Export to directory per user
    • Develop a concatenated Notes for the Outlook export
  • Control the number of exports (2 now)
  • Don't show the flashing screen.  Warn on timings
  • Automatically email file
Complete
20.22

LinkedIN scrape (https://www.linkedin.com/in/stephen-j-nurse/)

  • Include the summary experience and the employment history
Complete
20.23

LinkedIn Contacts

  • Deleting LinkedIn Contacts -just the owner's contact and the languages spoken
- Complete
20.25

Linkedin contacts 

  • Create a User-Settings upon scrape
Complete
20.26

Bugs

  • Market Economic Stats scraper doesn't work in live.  Not just United States (filters).  Aman is re-writing the scrape 
  • Chron job for  MarketStats doesn't work 
- Complete
20.27

User Passwords

  • List the users in alphabetical order
  • When you edit a User Password it changes the User name
Complete
20.27

LinkedIn Contacts

  • Don't save a Language Spoken for the null case
Complete
20.28

Users

  • Delete doesn't work
  • Include in user view.
    • Membership
- Complete
20.29

Security

  • Add role heirachy in security.yaml
- Complete
20.30

Market stats

  • Scrape doesn't work in live
Complete
20.31

Other

  • Make the Economic Stats scrape time 1am and 8.30am
  • Cron does not include FirstFT
  • Add a button to test that the FT.com login is working
  • Full content button (FT) only shows in first block (unassigned)
  • Upon user login, run a check on the user's logins and passwords and determine access accordingly
- Complete
20.32

Memberships

  • Create a 30-day free trial period
    • Unable to extend
    • Link the systems login to LinkedIn login and other site logins to avoid gaming
    • Buttons to upgrade
Complete
20.32

Economic Market Statistics

  • Chron job.  Refresh every 15mins
    • Button to refresh manually if >10mins 
  • Historical view by stat
Complete
20.33

User memberships

  • Dates
Complete
21 Aphrodite Winter Cash Cup #: 0
22 Visit Weimar #: 0
23 Comfy Cats #: 0
24 Personal Admin #: 7
24.01

Admin

  • Populate medical stats online 
- Complete
24.01

Pension

  • Call Towers and Reassure to ask about drawdown (one time or multiple)

Health

  • Knee: Email UK surgeon
  • Neck: Email UK surgeon

Tennis

  • Vasilly

UK Tax

  • Loan interest and Scion

GLG

  • Payment failure

Eurowings

Mum

 

Pending
24.02
  • Use Facebook to answer some Gwenny questions
Pending
24.03

Propose a website for Comfy Cats

- Pending
24.04

Personal Admin

  • Sell unused bikes 
  • Will
  • Health insurance
  • Physio exercises
  • IT course 
    • iOS; Buy Mac
  • Mum plans 
    • Power of Attorney 
    • New phone -  Does iPad work or shall I get her an iPhone. 
    • Money via the company
  • Facebook list
    • e-bike. Peloton. Golf clubs. Kitchen equipment (coffee machine. Orange juicer). Padel board 
  • London. Solution for stuff at SM.   
  • Clean & Service car
  • Repair bikes
  • Whey powder - how to use?  
  • Flying lessons. 
    • Website to summarise notes 
  • Basel 3.   Follow up with Ulrich and Alistair.  
  • EasyJet & BlueAir refund
Pending
24.06

TechArrette

  • Write a tech contract for Malcolm
  • Check out St Vincent’s company
  • Write to Park-N-Fly and equivalent in Nicosia (Nick)
  • Kids travel lite
Pending
24.06

Git for Lenovo Yoga5i not working.  Suspect this needs the new security add-on

Pending
24.07

LinkedIn

  • Edit profile occasionally (to trigger bots)
  • Keywords – include seniority and range of roles Mark Newberry good example
  • About section
    • In first person
  • Keywords
    • Size of projects, emphasis seniority of role, complexity and size 
Pending
24.08

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
25 Harcourt #: 0
25.02

User- Doubles Partner

  • Show?hide Doubles Partner if playing doubles
  • Present a list of player who are playing doubles, and not yet already taken
- Complete
26 Park n Ride #: 0
26.01

Initial setup

  • Create a live URL
  • Establishg the SSL
  • Get working for basic version
- Complete
30.01 SkiJobs #: 0
Loading…
Loading the web debug toolbar…
Attempt #