Proposed Developments and Enhancements
This page records possible future developments, improvements, and design ideas for the music archive website. These are not all urgent tasks. Some are small practical improvements, while others are longer-term ideas that may or may not be needed as the site grows.
Last Updated: 6 July 2026
Immediate / Small Improvements
- Make music-list.php page title dynamic. The visible page heading is already dynamic, but the browser title can also be made dynamic.
- Hide the “groups of twelve” text on filtered pages. Pages such as instrument, genre, and status currently show all matching tracks on one page, so the wording about groups of twelve may not always apply.
-
Add “no tracks found” messages.
For example, a valid URL such as
music-list.php?view=instrument&value=Octopusshould say that no tracks were found, rather than showing an empty page. -
Make value handling safer.
Use
$_GET['value'] ?? ''rather than plain$_GET['value'], so the page does not produce warnings if a value is missing. -
Add a top anchor.
Since the page includes “Back to top” links, add either
<body id="top">or<a id="top"></a>near the top of the page. -
Add redirects for old or mistaken pages.
For example, consider redirecting
contact.phptofeedback.php, and possiblycontests.phptocontents.php.
music-list.php Improvements
- Keep the current valid / invalid view system. Known views include title, ref, recent, lyrics, instrument, genre, and status. Anything else should show the friendly “Sorry” page.
- Possibly refactor filtered views later. Instrument, genre, and status currently each have their own query. This is clear and readable. Later, repeated code could be reduced if it becomes worth doing.
- Possibly paginate filtered views later. At present, filtered views show all matching tracks on one page. That is fine while the numbers are small.
-
Preserve value in pagination links if filtered views are paginated later.
For example, the page should preserve
view=genre&value=Adult Contemporary&page=2. - Possibly make headings more specific. For example, Tracks for Adult Contemporary could eventually become Genre: Adult Contemporary, and Tracks for Sketch could become Status: Sketch.
contents.php Improvements
-
Add links under Composition Status.
Statuses should link to pages such as
music-list.php?view=status&value=Sketch. - Keep Genres and Instruments linked. These now link through to filtered music-list.php pages.
-
Possibly make Overall totals linkable.
For example, Tracks with Lyrics could link to
music-list.php?view=lyrics, and Total Tracks could link tomusic-list.php?view=title. -
Possibly add a Tracks with Artwork view.
A future view could be
music-list.php?view=artwork. -
Possibly add a Tracks with YouTube view.
A future view could be
music-list.php?view=youtube.
Track Page Improvements
- Show artwork only when artwork exists. The track page should not show an empty artwork section.
-
Use the images folder for artwork.
Artwork files are stored in
images/, not in a separateartwork/folder. - Make empty sections disappear. If a track has no YouTube video, lyrics, comments, artwork, or feedback, avoid showing an empty heading.
- Possibly improve YouTube display. Only show the YouTube section when there is actually a YouTube link.
- Display genres, status, and instruments more neatly. Later, these could become clickable links back to filtered music-list.php pages.
- Add previous / next track navigation. For example: Previous track, Back to list, Next track.
- Improve track title and browser title. The browser title should ideally reflect the current track.
Feedback System Improvements
-
Filter public feedback by visibility.
Public track pages should only show feedback where
is_visible = 1. - Admin hide / unhide feedback. Feedback should be hideable without deleting it.
- Admin delete feedback. This is a possible future admin action, but should be handled carefully.
- Confirmation before deleting feedback. Use a browser confirmation before permanently deleting a feedback record.
- Include Feedback ID in notification emails. The ID should be added after the database insert, using the last inserted ID.
- Admin feedback list page. A page for listing feedback records in date order.
- Admin feedback view page. A page for viewing one feedback record in detail.
- Make Track ID clickable in feedback admin. Where feedback relates to a track, the Track ID should link to that track page.
- Show dashes for general feedback. General feedback may not have a track ID or track title, so display a dash instead of a blank value.
- Possibly add admin notes later. This would allow private notes about how feedback has been handled.
- Possibly add feedback categories later. For example: General comment, Bug report, Track feedback, or Suggestion.
Admin and Security Improvements
- Protect admin pages. Admin feedback pages should eventually be hidden from the public.
- Create a simple admin login. One administrator account is enough for the current stage of the project.
- Use sessions. A session can record whether the admin user is logged in.
- Create includes/admin-auth.php. Admin pages could include this file at the top to protect them.
-
Possibly create an admin folder.
Admin pages could later move into an
admin/folder. - Avoid multiple users and roles for now. Do not overbuild the admin system until there is a real need.
- Create an admin dashboard. A simple page linking to feedback admin, track admin, developer pages, and other tools.
Database and Content Management Improvements
- Composition status definitions page. A page explaining what different statuses mean.
- Review actual status names. Current statuses include items such as Developing, Experimental, Fragment, Draft, Released, Sketch, and Finished. These may need rationalising later.
- Possibly improve the status model later. At present, one track has one status. A more flexible model is possible later, but only if needed.
- Add track editing / admin pages. Eventually, tracks could be edited through web forms rather than directly in the database.
- Add artwork management. Allow artwork to be uploaded, selected, or changed through an admin page.
- Add YouTube management. Allow YouTube links to be added or edited through an admin page.
- Add genre and instrument management. Allow genres and instruments to be added or removed from tracks through the site.
- Add validation for missing audio files. Check whether every database filename exists in the audio folder.
- Add validation for missing artwork files. Check whether every artwork filename exists in the images folder.
Search Improvements
- Search by reference. This has already been discussed and added.
- Search by title. This is already part of the search system.
- Search by instrument. This is already part of the search system.
- Search by genre. This is already part of the search system.
- Search by composition status. This is already part of the search system or has been discussed.
- Improve search help text. The search page should clearly explain what users can search for.
- Possibly search lyrics later. This could be useful, but is not urgent.
- Possibly search comments later. This may be useful for archive work.
- Possibly highlight search terms in results. This would be a nice future improvement, but is not essential.
Navigation and Menu Improvements
- Browse dropdown menu. The Browse menu includes options such as By Title, With Lyrics, Recent, and By Ref.
- Keep By Ref lower in the menu. By Ref is especially useful for internal work, but probably less important for general visitors.
- Possibly add Browse by Genre. This may not be necessary because the Contents page already provides genre links.
- Possibly add Browse by Instrument. This may not be necessary because the Contents page already provides instrument links.
- Possibly add Browse by Status. This may not be necessary because the Contents page can provide status links.
-
Separate public menu and developer menu.
This is already being done using
includes/menu.phpandincludes/menu-dev.php.
Developer Documentation
- Developer Manual. A central place to document the structure and thinking behind the website.
- Project philosophy page. The site is a living archive and workshop, not just a polished catalogue.
- Development philosophy. The guiding principle is to change one thing, test it, and then move on.
- Database development history. Document why tables and fields were added.
- Composition status definitions. Document what each status means.
- Administration design page. Document how the admin system should grow slowly and practically.
- Project progress summary. Record what has already been built.
- Handling invalid music-list.php requests. Document why invalid views show a visible error instead of silently defaulting.
- Possibly create a site roadmap page. This could list planned features and their status.
CSS and Design Improvements
-
Use table classes rather than global table styling.
For example, use separate classes such as
doc-table,admin-table, anddetail-table. - Improve admin table styling. This would be useful for feedback lists and other admin pages.
- Improve track artwork sizing. Artwork is already working, but could be tuned later for desktop and mobile.
-
Fix spelling of lable eventually.
The correct HTML element is
label. This can be corrected later if it appears in the code. - Continue mobile layout improvements. Keep pages readable and easy to use on smaller screens.
- Keep the light, readable design. The current white background, dark text, and simple structure suit the project.
Technical Hygiene
-
Use dynamic CSS and JavaScript cache busting.
This is already being done with
filemtime(). -
Canonicalise www and non-www addresses.
Choose either
davidwhiteuk.comorwww.davidwhiteuk.comand redirect the other. -
Add redirects for legacy pages.
For example, redirect
contact.phptofeedback.php. - Possibly add a simple site_log table. This could record Information, Warning, Error, and Security events.
- Avoid blank screens. The work on music-list.php has already helped with this principle.
- Display friendly errors. The “Sorry” page in music-list.php is a good example.
- Do not silently default invalid URLs. Invalid URLs should show a visible message rather than pretending to be another valid page.
Bigger Future Possibilities
- Create a proper admin area. Manage tracks, feedback, genres, instruments, statuses, artwork, and YouTube links.
- Create a track inventory page. An administrative list of all tracks, possibly showing missing information.
- Create missing information reports. For example, tracks without lyrics, artwork, status, genres, instruments, or comments.
- Create a public / private distinction. Some tracks may eventually be hidden from public view while remaining in the archive.
- Add is_visible or is_public to audio files. This would be similar to the visibility field used for feedback.
- Add date fields. For example: created_at, updated_at, and published_at.
- Add project notes or history per track. Each piece could have its own development log.
- Add collaboration notes. Useful where Mary or others give feedback.
- Add richer categorisation. For example: mood, tempo, style, purpose, completeness, vocal / instrumental, and similar information.
- Add downloadable inventory or export. For example, export the track list as a CSV file.
- Add sitemap and SEO improvements. This is not urgent, but may be useful as the public site grows.
- Add a better 404 page. A friendly site-wide not-found page would improve the visitor experience.
- Keep documenting decisions as the site grows. Documenting why decisions were made is one of the strongest features of the project.
Suggested Next Practical Priorities
The most useful next practical improvements are probably:
- Make the music-list.php browser title dynamic.
- Hide the “groups of twelve” text on filtered pages.
- Add no-results messages for valid filtered pages with no matching tracks.
- Add a contact.php redirect to feedback.php.
- Begin thinking about admin protection.
These are suggestions rather than requirements. The project should continue to grow slowly, with one change made and tested at a time.