To Do: All (Pending)

Priority Project #
1 ATS Template #: 10
0.79

CMS Photo

  • Add an input field in the entity that puts a title on the photo (or a flag to move it from a tooltip to a title)
Pending
1.03

Header

  • Include a checkbox that says include Photo in the Title when not logged in. 
Pending
1.04

CMS Copy/Format

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

Tech Set Up Between Muhammad & Steve

  • It would be great if we could find a screen share solution that shares 2 screens and doesn't fall off connections as frequently as Chrome Remote Desktop
Pending
1.08

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
1.08

Users

  • Error message when adding a birthday “datefmt_create: invalid locale: U_ILLEGAL_ARGUMENT_ERROR”
  • Make the flags on the User/index saveable fields in the CompanyDetails page, so the standard can be saved for each application 
    • Add conditionality so that unnecessary flags are hidden in both the User View and in Company Details
- Pending
1.09

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
1.12

Useful Articles

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

Security

  • Email verification for New users
Pending
1.13

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
1.15

Multi-lingual

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

Business Contacts and Competitors

  • The export function should mirror the import and add back in the Company name accordingly
Pending
1.17

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
2 Stephen-Nurse #: 2
2.00

Birthday cron

  • No longer works
  • php bin/console app:send-birthday-reminders
  • The service is set to 20 days. 
     
- Pending
2.02

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
2.03

House Guest

  • New: 
    • If ‘Internal Note’ or ‘Block Out’ is checked, it should hide the GuestName.
  • Email alert doesn't work
- Pending
2.04

Bank balances -New in Dev

  • Error: IntlException HTTP 500 Internal Server Error - datefmt_create: invalid locale: U_ILLEGAL_ARGUMENT_ERROR
  • I have seen this multiple times.  Why does it occur and how do I correct?
Pending
3 AX Tools #: 11
2.93

Private Plus taxi

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

Shared Transfers

Conceptual overview:

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

Assigning Transfers to a Shuttle Bus 

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

Pricing

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

Shuttle: Edit Screen

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

 

- Pending
3.03

Ops Warnings

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

Customer Emails Fragment

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

Customer Booking Confirmation

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

 

Customer Emails Template

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

New booking - from email 

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

Calendar page

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

Driver's page 

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

Email received into the mailbox

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

Resort Contacts

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

Background/rational

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

 

Pending
3.13

Flight scraper

Populate Kayak data

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

Populate GVA.CH data

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

Code-share

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

Management: XLS exports:

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

“Shared” Private Transfers

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

Taxi partners

There are different levels of Partners

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

Trips to Outsource view

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

New booking 

Client search

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

 

Chalet address

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

 

Date selection

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

 

Billing

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

Client comms

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

Accommodation: Index

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

Accommodation: Street map 

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

Public pages (non-protected)

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

Accommodation

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

Confirmation pages 

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

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
4.06

 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
5 LinkedIn Export #: 2
5.00

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
5.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
5.02

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
5.04

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
5.05

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
5.06

Basic Contact scrape - handling names.

  • “David A. Lewis” should be David Lewis
  •  
- Pending
6 Immigration Services #: 4
5.93

Other

  • Review site in mobile mode. Currently the following screens do not look great:
    • When a user is logged in:
      • Show a transaction (eg http://localhost:8000/transaction/19/show)
        • And editing each Document (eg Passport, Birth Cert, Driving License etc)
  • Security
    • The My Availability page needs to be security protected (just the specific-user and staff)
  • PriceList page
    • This should cycle through the Services Offered and show the summary and price
  • Complete MEU1, MEU3 and Bank of Cyprus forms
    • Complete the code to show the questionnaire titles in either English or Greek (or both) in the MEU1 and MEU3 forms
    • Ensure that the forms ‘import’ the necessary information in the right place (eg from User, or Passport or Employment Contracts etc)
  • Flight stats page
    • Import from stephen-nurse.com. It works in stephen-nurse.com
  • Add Google analytics link
Pending
6.01

Need to upgrade all the controllers/forms

Pending
6.03

Immigration Services site

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

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

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

Immmigration Services

  • Facebook questions
    • Boat to Europe. 
    • Good accountant lawyer
    • Good Gwenny
    • Schools
    • Pet sitters
  • Write to Serghios
Pending
7 Criminal Record Checks #: 0
7.65

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
7.99 Tennis Club #: 7
6.77

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
7.99

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
8.03

New entity with Courtey rankings vs User

  • Import/export function or ability for user to edit their own ranking points
Pending
8.03

Payment

  • Stripe set-up
  • Handling of visitors - visitor fee applied to members Tournie and leagues Platinum vs good memberships
Pending
8.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
8.07

Management reporting stats pages 

- Pending
8.08

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
8.08

Users - Delete All

  • Doesn't work
Pending
8.09

Formatting

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

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
8.10

Tournament

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

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
8.13

Tennis Court Availability

  • Future bookings count - had to change
- Pending
8.85

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

Pending
8 Tennis Finder #: 7
6.62

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
8.00

Cancellations

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

Scraping courts 

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

Scraping

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

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
8.04

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
8.05

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
8.08

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
8.09

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

Pending
8.09

Bookings

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

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
8.11

ClubSpark

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

Email functionality

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

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
8.16

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
8.17

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
8.18

Payments

- Pending
8.21

Booking completion

  • Complete the ClubSpark scraping functionality
    • One-click booking
    • Cancellations 
Pending
10 Financial Advisor #: 1
10.00

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
10.03

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
11 Whistles & Bells #: 1
11.02

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
Loading…
Loading the web debug toolbar…
Attempt #