GithubHelp home page GithubHelp logo

stoolball-england / stoolball-org-uk Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 153.96 MB

A rebuild of the Stoolball England website in Umbraco

License: Other

JavaScript 4.17% PowerShell 0.20% C# 81.50% HTML 11.13% SCSS 2.05% TSQL 0.95%
umbraco sport sports sports-stats sports-analytics sportsanalytics non-profit nonprofit nonprofit-organizations fitness

stoolball-org-uk's People

Contributors

dependabot[bot] avatar snyk-bot avatar sussexrick avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

stoolball-org-uk's Issues

Support linked data URLs

Previously supported URLs were
^id/ground/([a-z0-9/-]+)$ /ground/$1

^id/(team|player|match|tournament)/([a-z0-9/-]+)$ /$2

^id/user/([0-9]+)$ /you/profile.php?id=$1 [R=303,L]

Maintain old rules redirects

^indoor/?$ /rules/indoor/

^spirit/?$ /rules/spirit/

^therules/?$ /rules/rules-of-stoolball/

^scorers/?$ /rules/how-to-score/

Shop page

Support URL advertised in rule book
/shop/
/play/equipment/buy/

Include an Umbraco form to send a sales enquiry, replacing old contact form option.

Replace page text on save

Review 'stoolball' plugin for WordPress and recreate as a save event handler in Umbraco wherever replacements are still relevant.

Configure Google Analytics

Including cookie banner and cookie policy saying implied consent.

Use analytics.js rather than gtag. See HTML5 Boilerplate for example code https://github.com/h5bp/html5-boilerplate/blob/master/dist/index.html

Check and restore the following to the 'Use our data' page:

Web analytics

We use Google Analytics to help us improve this website. You can sign in for yourself and see how the website gets used.

Website: www.google.co.uk/analytics
Email: [email protected]
Password: stoolball

All of the data collected by Google Analytics are anonymous. However, if you want to stop it recording your own visits to this website you can use the Google Analytics Opt-out.

Schools section support existing URLs

RewriteRule ^schools/map/?$ /play/schools/schools-map.php

RewriteRule ^schools/add/?$ /play/schools/add-school.php

RewriteRule ^schools.json?$ /play/schools/schools.js.php

ICS calendar downloads and subscriptions for matches and tournaments

  • overall matches list
  • matches for team
  • matches for location
  • tournaments by player type (URL was tournaments/?([a-z]*)/calendar.ics)
  • individual matches
  • matches for season
  • matches for club

End time is estimated based on the match type using Match.GetEstimatedEndTime()

  • Restore the following text to the 'Use our data' page under a 'Match calendars' heading:

Matches are published in iCalendar format for you to subscribe to. Look for the ‘add these matches to your calendar’ links wherever you see a list of matches.

List of competitions

Base it on Umbraco pages to avoid rebuilding category management. A custom property editor (or grid editor) to pick which competitions to show will make it easier to create a different page for Surrey (see #50)

However it's implemented, it should support drill-down, eg start with areas (counties) and then drill into the competitions there. Similar to current site.

/competitions/?$ /play/competitions/index.php

^competitions/([a-z]*)/?$ /play/competitions/index.php?category=$1

Open graph markup and SIOC for news articles

In archive listing and on single blog article page.

Restore the following text to the 'Use our data' page under a 'Linked data' heading:

We use the Semantically-Interlinked Online Communities (SIOC) vocabulary to publish our news as a ‘Weblog’ and our match comments as ‘Thread’ and ‘Comment’ instances.

Create form to email about website

Old URL was /contact/

Use Umbraco forms

Email field optional, labelled "if you'd like a reply" and explains address only used for that.

Use text intro to direct Stoolball enquiries elsewhere and vice versa.

Link to the Contact us section from the footer.

Add a tournament

Adapts choices based on context team, ground or season for which the tournament is being added. Can be any one or none of those.

Interacts with adding teams and matches in a wizard flow, showing step x of x.

Gathers title, player type, players per team, overs, qualification type (open or closed), start date and optionally the time, notes, context team, the ground, context season.

Suggests a title based on the context team or season. Defaults to open tournaments and mixed player type to encourage inclusivity. Defaults to 8 a side and 4 over matches.

Can specify a default date and time, eg for annual tournaments, or just use 10.30am today.

Location is optional.

Default to a context team's home ground.

Notes should remind them to include contact details. Use a template maybe?

Player type, tournament title and date are the required fields.

Update client dependency version to bust cache

Based on hash or deployment. Also update the cache version in the service worker.

The Push to Umbraco Cloud script could do this, so that changes are only committed to the cloud repo.

List of matches

  • Dates are displayed relative, eg "today", "next Tuesday" using filters in date.class.php. Times omit minutes where possible.
  • Routes to support: /matches/ and /matches/all
  • Default is future matches
  • Supports paging
  • Supports search
  • Next match is highlighted.
  • Uncomment the link on DeleteMatch.cshtml when a match has been deleted.
  • Update match controllers to add a "Matches" node to the breadcrumb trail.

List of teams

/teams/ redirects to /teams/all
/teams/?([a-z])/?([a-z])/?$ /play/teams/index.php?player=$1&area=$2

This will involve resetting the default of FilterByTeamType to exclude once-only teams. Ensure SelectByRoute() for the view team page can still show them. Previously it had to override this default filter.

Team search should search the player type, similar to competitions.

onlysport.php data feed

The onlysport.org website still exists, so this is probably still used. Recreate it.

URLs must be https://www.stoolball.org.uk/data/spogo.csv and https://www.stoolball.org.uk/data/matches/onlysport.csv - importing from both in 2013 and hopefully still, with API key nPf...

Restore text to the 'Use our data' page under a 'Teams' heading:

Regular teams as spogo CSV – download a spreadsheet of all the teams that play regularly, have contact details and are open to new members, in the format we use to share our data with OnlySport.org (updated every Sunday). Please request an API key if you want a copy of these data including email addresses and phone numbers.

We also publish teams as linked data – see below for details.

Also under a 'Match calendars' heading:

Matches as OnlySport.org CSV – download a spreadsheet of all future matches and tournaments in the format we use to share our data with OnlySport.org.

We also publish matches as linked data – see below for details.

promoting-activity.php data feed

Review if still used, and recreate if so. Restore the following text to the 'Use our data' page under a 'Teams' heading:

Regular teams as NHS Choices CSV – download a spreadsheet of all the teams that play regularly, have a postcode and are open to new members, in the format we use to share our data with NHS Choices.

Send us details of your team

Support URL advertised on club registration form /addteam/. Redirects to URL /teams/add/, which led to a form that sent an email.

Support competition groups

Or is it a team group? Probably not, but think that one through...

Recreates the Surrey page from the old site and categories. Ignore news, which has not been used for years. Review code in play/competitions/index.php which suggests special treatment for SCSA as well. Many to many, because you'd want to include inter-league competitions in both a County stoolball group and the participating groups.

Includes:

  • links to competitions in the group, eg for Surrey their A league, B league, Knockout Cup and County competition
  • competitions list links to the group in preference to the competition, similar to clubs and teams
  • UI to choose the group a competition is in
  • UI to add/edit/delete groups
  • Add the group to the competition breadcrumb trail

wsnet.php data feed

Women's Sports Network. In 2015 they were using this feed of matches and spogo.csv for teams, and doing a manual upload to their website. FDL... is their API key.

Overs introduced a new join to OverSets and a GROUP BY clause, so if that turns out not to be necessary those can be removed.

RSS feed for matches

  • Previous URLs were configured as: ^matches.rss$ /play/matches/matches-rss.php
  • {club-route}/matches.rss
  • {team-route}/matches.rss
  • {competition-route}/matches.rss
  • With variant to feed Twitter
  • Add the following link to the bottom of /play/manage/website/

Tweet your matches automatically
Tweet your new matches as you add them to this website, or tweet 'It's match night!' on the day of your match to keep your followers interested.

Content of the page:

Tweet your matches automatically

You can use our ‘Subscribe to new or updated matches’ feature and IFTTT to tweet about your matches automatically.
Tweet your matches as you add them

IFTTT is a free service that lets you take updates from our site and tweet them from your account. Create or sign in to your account and follow the following steps:

  1. Go to the settings page for your account and add your Twitter account, if you haven’t already done so.
  2. Select ‘Create applet’. You can find this on the menu for your account at the top-right.
  3. IFTTT says ‘if this then that’. Click on ‘this’ and pick the ‘RSS Feed’ service and then ‘New feed item’.
  4. On your club, team or league page look for the ‘Subscribe to new or updated matches’ link. Right-click it and copy the link. (The wording of this option will differ depending on the browser you’re using.)
  5. Where IFTTT asks for the Feed URL, paste the link and add ‘&format=tweet’ on the end.
  6. Click ‘Create trigger’.
  7. IFTTT says ‘if this then that’ again. This time click on ‘that’ and pick the ‘Twitter’ service and then ‘Post a tweet’.
  8. The default format of ‘EntryTitle EntryUrl’ is fine, but you can change it if you want to. Click ‘Create action’ then ‘Finish’, and you’re done!

[Screenshot: An example tweet about a new match]

Tweet your matches on match day

You can also tweet ‘We’re off to [tournament name]!’ at 8am on the day of the tournament, ‘It’s practice night – come and join us!’ at 4pm on practice days, or ‘It’s match night! [match title]’ at 4pm on match days using the same method.

Following the steps above, create another applet and, in step 5, instead of adding ‘&format=tweet’ add ‘&format=tweet&today=true’. We’ll do the rest.

[Screenshot: An example match night tweet]

List of tournaments

  • /tournaments/ redirects to /tournaments/all/
  • Uncomment the link on DeleteTournament.cshtml which should display when a tournament is deleted.
  • Update tournament controllers (including view/edit transient team) to include a "Tournaments" node in the breadcrumb trail.
  • Includes RSS link at the bottom of tournaments list

Statistics pages should support existing URLs

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^play/statistics/([a-z0-9-]+)/?$ /play/statistics/$1.php

^play/statistics/([a-z0-9-]+)/?$ /play/statistics/table.php?statistic=$1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.