Project Progress Summary
This document records the current state of the dwukMusic website and archive project. It is intended as a milestone in the development of the system, showing both what has been achieved and the design philosophy that has emerged during development.
Overall Philosophy
The website is no longer simply a collection of music files. It has evolved into a structured archive documenting the complete creative journey of every composition.
Throughout development the emphasis has been on:
- clarity over cleverness
- incremental development
- building and testing one feature at a time
- writing code that will still be understandable years from now
- creating an archive rather than merely publishing finished work
Database
The database now forms the centre of the website.
Major tables include:
- audio_files
- feedback
- composition_status
- junction tables linking compositions to multiple statuses
The database design supports future expansion without requiring major structural changes.
Track Pages
Individual track pages have become considerably richer.
- Track information is loaded from the database.
- Artwork is linked dynamically.
- Additional information pages are supported.
- Feedback links pass the track identifier automatically.
- Track IDs are now used consistently throughout the site.
Feedback System
The feedback system has grown into one of the most complete parts of the website.
Features now include:
- General feedback.
- Track-specific feedback.
- Automatic subject generation.
- Track title lookup.
- Track URL included in emails.
- Google reCAPTCHA protection.
- Email notification.
- Storage in the feedback table.
- Automatic feedback IDs.
Every feedback item is now permanently recorded and can be managed later through administration tools.
Feedback Administration
A basic administration system now exists for feedback moderation.
Current functionality includes:
- List all feedback.
- Sort newest first.
- Display source (Track or General).
- Display track title.
- Display track ID.
- Track IDs link directly to the corresponding track.
- Each feedback ID opens a detailed view.
- Visibility status is displayed as Showing or Hidden.
- Feedback can be hidden.
- Hidden feedback can be restored.
This establishes the pattern that future administration pages are likely to follow.
Composition Status System
The composition status system is designed to describe the life cycle of a piece of music rather than simply whether it is finished.
Unlike a traditional single-status field, a composition may possess multiple simultaneous statuses.
Examples include:
- Work in Progress
- Needs Lyrics
- Demo
- Published
- Archived
- Collaboration
This reflects the philosophy that the archive should document the creative journey, not merely the finished destination.
Developer Documentation
A separate Developer section now exists.
Rather than leaving design decisions buried in conversations, the project increasingly documents:
- coding philosophy
- database decisions
- status definitions
- future plans
- development milestones
This documentation should make the project maintainable many years into the future.
Programming Style
One important conclusion reached during development is that there is no single "correct" way to structure PHP pages.
Two broad approaches have been discussed:
- A readable script where PHP and HTML naturally alternate.
- A stricter separation where PHP prepares all data before HTML begins.
For this project the preferred approach is whichever produces the clearest, most maintainable code for that particular page. Readability is valued more highly than theoretical elegance.
Future Development
Likely future work includes:
- Password-protected administration area.
- Administration dashboard.
- Track management tools.
- Artwork management.
- Composition status editor.
- Feedback deletion.
- Database statistics.
- Developer tools.
The intention remains to add each feature in small, fully-tested stages rather than attempting large-scale redesigns.
Current Position
The project has evolved from a simple music website into a structured, database-driven archive with the foundations of a content management system.
The emphasis continues to be on preserving the history and evolution of every composition while maintaining code that is understandable, well documented and capable of growing steadily over time.