## Activity type
Personal pursuit (eg Art / Computing / Making / Music / Drama / Sport)
## Description
I developed WordPlayer (wordplayer.top), a comprehensive vocabulary learning website that evolved from a terminal script I created during exam week in January 2026. After my CS teacher suggested creating a web interface, I built a full-stack web platform that grew to 382 files and 2.38 GB, integrating automatic word pronunciation using Youdao TTS API, open-source dictionaries, translations, word roots, morphology databases, and example sentences into a unified learning mode. This project became an opportunity to bridge technical implementation with user experience design, as I collaborated with art students to create an intuitive and visually appealing interface.
The platform offers three dictation practice methods: listening and writing words, listening and writing definitions, or reading definitions and spelling words. Users can customize repetition counts, reading intervals, playback speed, and word order randomization. The interface supports four languages (Chinese, English, Japanese, Korean) with American or British accent options, and features eight color themes each with light and dark modes.
I collaborated with two art students who designed the interface, color schemes, and icons. Following my English teacher’s request to make it accessible to classmates, I implemented a local storage-based word card management system where users could create custom cards and organize them into folders. As the project evolved, I added email-based user authentication to enable cloud synchronization, initially using a composite primary key structure (email + card name/folder name) for the database.
The most significant technical challenge emerged when users requested a public sharing feature allowing them to publish folders for others to search and use. I realized my existing database design had a fundamental problem: if multiple users referenced the same public folder, directly copying data would cause massive redundancy, but using references required protecting the original publisher’s permissions and preventing unauthorized modifications.
I spent three days completely refactoring the database architecture. I redesigned the schema by converting word cards and folders into independent tables with ID-based primary keys, replacing the JSON-based relationship structure with separate reference tables. This normalized design created a clear hierarchical access pattern: folders store word card IDs, and a public folders table stores folder IDs. This approach eliminated data redundancy while maintaining data integrity and permission isolation through foreign key constraints.
Interestingly, I implemented this normalized database design before formally studying database theory in my Computer Science course. I made the design decision based on engineering intuition—prioritizing code maintainability and readability over potential query performance costs, as I believed clear database structure would significantly reduce bugs. When I later studied normalization principles in my CS Unit 8 (Databases), I realized my intuitive approach aligned with established database design theory, validating that my engineering judgment and first principles thinking were sound.
The refactoring process was extremely challenging—it required restructuring nearly half the codebase, with both frontend and backend needing coordinated updates to accommodate the new schema. As someone who values code quality, I chose complete refactoring over compromise solutions with redundant code. The process took one day for redesign and two days for testing and debugging, but I persisted and completed a comprehensive optimization after finishing the core functionality.
The deployment process deepened my understanding of network architecture. I registered the domain wordplayer.top (rejected twice during the filing process), purchased and configured a cloud server, obtained SSL certificates, and set up reverse proxy and process management. This hands-on experience with DNS resolution, IP addressing, NAT, and network protocols transformed my theoretical knowledge into practical understanding of how data flows across the internet.
This project taught me several crucial software engineering principles. First, I learned that different database architectures suit different project scales—my initial design was perfectly adequate for a small-scale application, but scaling to support public sharing required fundamental restructuring. This taught me the importance of anticipating future requirements during the planning phase, though I also learned from discussions with my parent (who experienced similar architectural evolution in their startup) that it’s normal for systems to require refactoring as they grow.
Second, I understood the principles of relational database design—particularly the trade-offs between data consistency, query efficiency, and system scalability. I learned that maintainability often outweighs minor performance costs, and that clear architecture reduces long-term technical debt.
Finally, this experience demonstrated how software architecture must evolve with requirements, and that successful engineering involves continuous trade-offs between competing concerns while designing systems that can accommodate growth. The website is now fully operational and serves both my classmates and public users.
## Skills
– [x] Critical thinking
– [x] Planning
– [x] Artistic skills
– [x] Communication
– [x] Teamwork
– [x] Leadership
– [x] Problem solving
– [x] Creativity / Innovation
– [x] Independence
– [x] Adaptability / Resilience
– [x] Risk-taking / Courage
– [x] Inquisitiveness
## Date started
Month: 1
Year: 2026
## Date finished
Month: 2
Year: 2026
## Referee
CS Teacher
