Skip to content

ivanlokh/mras

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Music Rating Aggregator (MRAS)

Сайт-агрегатор музичних рейтингів, призначений для збору, обчислення та відображення консенсусних оцінок музичних альбомів, EP та синглів на основі відгуків критиків та користувачів (аналог Metacritic / Album of the Year).

🏗 Архітектура Проєкту

Проєкт побудований за сучасною клієнт-серверною архітектурою з використанням актуального стеку технологій.

Стек Технологій

  • Frontend: Next.js (React), Tailwind CSS (або Vanilla CSS для унікального дизайну), TypeScript. Server-Side Rendering (SSR) для максимальної оптимізації SEO.
  • Backend: Node.js / Express (або Next.js API Routes, для об'єднання в один монорепозиторій), TypeScript.
  • База Даних: PostgreSQL (реляційна структура ідеально підходить для зв'язків: Артист -> Альбом -> Рецензія -> Користувач). Для зручної роботи можна використати Prisma ORM.
  • Збір Даних: Python (BeautifulSoup, Scrapy) або Node.js (Puppeteer/Cheerio) для веб-скрапінгу сайтів-джерел. Інтеграція зі Spotify API / Last.fm API для швидкого отримання обкладинок та треклістів.
  • Хостинг / Інфраструктура: Vercel (для клієнтської частини), Supabase або AWS RDS (для бази даних), GitHub Actions (для CI/CD).

Комплексні модулі системи

  1. Data Crawler (Парсер): Окремий мікросервіс або CRON-job, що регулярно (наприклад, кожні кілька годин) обходить сайти авторитетних музичних видань, збирає нові рецензії та завантажує їх у базу.
  2. Scoring Engine (Рушій обчислення балів): Логіка переведення різних систем оцінювання (A-F, 1-5, 1-10) до єдиної 100-бальної шкали та обчислення середнього зваженого рейтингу.
  3. Core API: RESTful або GraphQL інтерфейс, який відповідає за пошук, фільтрацію та передачу даних на фронтенд.
  4. Web Client: Безпосередньо інтерфейс користувача з профілями, списками популярних релізів, сторінками рейтингів, тощо.

🗺 Технічний План (Roadmap)

Фаза 1: Фундамент та Проєктування

  • Розробка детальної ER-діаграми бази даних (сутности: Artist, Album, Track, ReviewSource, CriticReview, UserRating та User).
  • Налаштування робочого середовища (Git репозиторій, базові лінтери eslint/prettier).
  • Ініціалізація бази даних PostgreSQL та написання початкових міграцій.

Фаза 2: Збір даних (Data Miner)

  • Налаштування інтеграції зі Spotify API для отримання достовірної метаінформації про релізи (дати, жанри, обкладинки).
  • Розробка універсального формату збереження рецензій.
  • Створення перших парсерів для 3-5 ключових музичних платформ.
  • Реалізація механізму нормалізації зчитаних оцінок до 100 балів.

Фаза 3: Backend & Core API

  • Створення схеми Prisma та підключення до бази.
  • Написання API ендпоінтів для отримання альбомів (посторінкова навігація, пошук, фільтри).
  • Реалізація системи автентифікації користувачів (NextAuth або JWT).
  • Створення ендпоінтів для залишення власних оцінок зареєстрованими клієнтами.

Фаза 4: Frontend Development

  • Налаштування Next.js проєкту та архітектури компонентів.
  • Верстка базових UI елементів системи дизайну (типографіка, прогрес-бари рейтингу, сітки альбомів).
  • Інтеграція з API: підключення Головної сторінки, Сторінки Рейтингів за роками, Сторінки Артиста/Альбому.
  • Реалізація функціоналу реєстрації та особистого кабінету користувача зі списком його оцінок.

Фаза 5: Полірування, Анімації та Реліз (MVP)

  • Впровадження Smooth-анімацій (Framer Motion або CSS transitions) для створення преміального вигляду.
  • Глибоке налаштування SEO: генерація динамічних <title>, meta-тегів та Open Graph карток для каждого альбому.
  • Адаптація під мобільні пристрої на 100%.
  • Фінальне тестування, налаштування аналітики та публічний реліз.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors