2. Contribute - PFython/WGACA-UK GitHub Wiki

We're always on the lookout for people to help enhance, support, or localise WGACA so if you have some skills or experience and a bit of free time during Covid-19 'lockdown', please get in touch with the Core Team.

Localisation

We currently have people working on the following localisations:

  • English - main branch
  • Dutch
  • Swedish
  • Italian

If you want to start localising WGACA in another language, please have a look at the ever-evolving Localisation Discussion.

General Challenges

This app has been thrown together VERY quickly by volunteers who aren't even 'professional' coders in some cases. We're very aware that the code itself may be less than ideal in terms of security, performance, readability, UI/UX best practice, and generally being 'Pythonic'. We'd welcome help from experienced developers in raising the overall quality of the app, including general refactoring. We also don't currently have a structured set of tests, mainly because we're still getting our heads around the best ways of doing that in Anvil.works, so any help getting this set up and running properly would be greatly appreciated too.

Specific Challenges

  1. "Travelling salesman" algorithm. Need a way to take a list of Deliveries and calculate the optimum route/sequence based on their addresses.

  2. Google Maps/Open Street Map integration. Ability to pop up specific Street in a nice visual map (iframe?). Ability to take the "Travelling salesman" route and plot it on a map.

  3. Address Data. We've started with UK address data from the Ordnance Survey and are writing some utilities to import those into WGACA's 'County: Town: Streets' dictionary. We either need a global solution for all other countries ultimately, or local solutions depending on the best data source for each country. Also need a 'manual override' facility for a user (or developer) to white-list custom addresses that might not appear on the original database.

  4. Product Data. We've put some thought into the current structure of our Products' hierarchy (e.g. Food | Fruits | Blueberries) and their Units of Measure, but it's complex and we'd welcome fresh thoughts or just suggested items to add or remove. Also need a 'manual override' facility for a user (or developer) to white-list custom Products that might not appear on the original database.

  5. Reputation History. Need a way to record and present all user activities (Offers, Requests, Deliveries, deletions, cancellations, changes of phone number/postcode) and derive a "Karma Score" (5 stars and a few key metrics?) which given users and idea of how trustworthy (or greedy) other users are. Perhaps combine with better "User Profile" functions e.g. set an optional biography paragraph and profile photo, view summary data about another user etc.

  6. Integrated Ticketing. We have a simple feedback form that saves to a Feedback data table, but would like more ticketing functionality for supporting the app going forwards. Perhaps integrating this: https://anvil.works/learn/examples/ticketing-system

  7. Better Database Management. At the moment we have no way of cleanly removing users without leaving 'orphaned' entries in other tables. We don't have the ability to run any reports e.g. on inactive users, and we don't have any overall dashboard for key metrics like total number (by Street/Town/County/Country) of users registered, Offers made, Requests made, Deliveries complete, Deliveries in progress, Deliveries failed. It would also be great to have some basic mail-merge functions like emailing updates and notifications to all users.

  8. User to User Messaging. It would very handy to have an in-app chat or messaging facility, particular so that Runners can organise pick-up and deliver times, or Requesters can ask questions about products in Offers etc. Basic calendar functionality like the ability to propose a time (or times) and accept them or counter-propose other times would be amazing too.

  9. Add a Donate button - customisable to the WGACA lead developer in each country to recognise and support their time spent on data curation, support, localisation, and feature requests etc, and also to selected local charities or community organisations doing work to deal with Covid-19.