27d
HomeProjectsContact
Resume

About

Creative developer passionate about building beautiful, functional web experiences that delight users.

Latest Work

๐Ÿ” Registration Request System ๐Ÿ’€ Deadsign ๐ŸŽบ Music Track Manager

ยฉ 2026 Serhii Dankovych. All rights reserved.

Made with ๐Ÿ’š

๐ŸŽบ Music Track Manager

๐ŸŽบ Music Track Manager

Overview

A modern Next.js frontend for managing music tracks via a clean and interactive UI. This project supports full CRUD operations, audio upload, and inline playback, designed as a submission for the Front-End School 3.0 challenge. It emphasizes modular architecture, clean code, and testability with data-testid attributes.
Music Track Management App

Music Hive

A modern frontend application for managing music tracks, originally developed for the Front-End School 3.0 challenge. It has since been refined through extensive code reviews.

Core Features:

  • Full CRUD: Create, edit, and delete music tracks.
  • File Handling: Upload audio files directly.
  • Playback: Listen to tracks with inline audio playback.
  • Data Management: Powerful search, filter, and sort functionalities.

Project Image


๐ŸŽต Features

โœจ Featureโœ… Core Feature๐ŸŒŸ Extra Feature๐Ÿ’ฌ Description
๐ŸŽผ Create Track (Without Audio)
โœ…
Modal for metadata input, optional cover image (with validation), metadata saved independently of audio
โœ๏ธ Edit Track Metadata
โœ…
Pre-filled edit modal, automatically updates the track list
๐ŸŽง Upload Track Audio
โœ…
Supports .mp3 and .wav, validates type and size, replace/remove audio
โŒ Delete Track
โœ…
Removes from frontend/backend with confirmation dialog
๐Ÿ“œ Track List View
โœ…
Paginated, sortable, debounced filtering, inline single-audio playback
๐Ÿ”ฅ Bulk Delete
โœ…
Select and delete multiple tracks at once
โšก Optimistic UI Updates

๐Ÿ–ผ๏ธ Music Track Management App Gallery

This gallery showcases the core functionality, interactive modals, and overall UX/UI of the Music Track Management App. It includes examples of creating and editing tracks, uploading audio, using the audio player, applying filters, and managing the deletion process.

Create/Edit Track DetailsManage Audio File
Main track list view with filters and audio player.Modal for creating a new track with metadata and cover image upload.
Bulk Delete with Search and Sort Options
Demonstration of selecting multiple tracks for bulk deletion.

โšก Performance & Optimizations

Performance and accessibility were key priorities. The following optimizations were implemented to improve user experience:

  • Optimized Image Loading: Implemented strategies to reduce image-related delays and prevent layout shifts (CLS).
  • Reduced Render-Blocking Resources: Minimized render-blocking delays to significantly improve the Largest Contentful Paint (LCP) metric.
  • Enhanced Accessibility: Added meaningful, accessible names to all interactive elements like buttons and links.
  • Back-Forward Cache (bfcache): Ensured WebSocket connections are properly closed on navigation to allow the browser to use bfcache for instant back/forward navigations.

Performance


๐Ÿ“ฆ Build

The app uses a hybrid rendering strategy to optimize performance and flexibility. The homepage and error page are statically generated for fast load times. The /tracks route is server-side rendered to handle dynamic logic or authentication. Individual track pages (/tracks/[id]) are statically generated at build time, providing excellent performance and SEO benefits.

Build


3. Run the development server

npm run dev
# or
yarn dev
# or
pnpm dev

The app should now be running at http://localhost:3000


๐Ÿงช DEV Commands

TaskCommand
โœ… Unit Testsnpm run test
๐Ÿงช End-to-End Testsnpm run test:e2e
๐Ÿงน Lint Codenpm run lint
๐Ÿ› ๏ธ Auto-fix Lintnpm run lint:fix
๐Ÿ“š Storybooknpm run storybook
๐Ÿ“ฆ Build Storybooknpm run build-storybook

๐Ÿง  Backend Overview โ€” Music Manager API

Music Manager API is a RESTful backend application built for managing music tracks. It provides endpoints for creating, reading, updating, and deleting tracks, along with validation, testing, and API documentation support.

You can also find the backend for this project here:

๐Ÿ‘‰ GitHub: https://github.com/serhiidankovych/music-manager-api


๐ŸŽ“ Final Mentor Feedback & Key Learnings

This project was improved through detailed mentor and peer code reviews. The final feedback below highlights strengths and key areas of growth.

Click to view the full review and key takeaways

Mentor's Comment: "A good, clean, and well-structured project!"

Key Strengths:

  • โœ… Excellent Typing & Validation: Great use of Zod for robust data validation.
  • โœ… Clear Folder Structure: The project's architecture is intuitive and easy to navigate.
  • โœ… Reusable UI Components: Well-designed, reusable components built with best practices.
  • โœ… Comprehensive Testing: Strong test coverage across unit, integration, and E2E tests.
  • โœ… Modern Stack: Correct implementation of Next.js App Router and GraphQL.

Areas for Improvement & Learnings:

  • ๐Ÿ“ Component Refactoring: Learned the importance of splitting large components like TracksPageContent for better readability and maintenance.
  • ๐Ÿ“ Semantic HTML: Gained a deeper understanding of using semantic tags (nav > ul > li) for better SEO and accessibility.
  • ๐Ÿ“ API Structure: Identified opportunities to separate API interaction methods into different files for better organization.

This feedback was invaluable for refining the codebase and strengthening my development practices.

image

Tech Stack

Next.jsTypeScript

Links

Source Code
โœ…
Instant UI feedback before backend confirmation
๐Ÿ“ˆ Waveform Visualization
โœ…
Shows waveform for currently playing track
๐Ÿ“ก SRR and SSG
โœ…
SSR implemented for the /tracks page and SSG added for individual track pages /tracks/[id]