Skip to content

Would You Like A Snack v2 - VueJS tryout project about Prog Rock albums

Notifications You must be signed in to change notification settings

Benjent/prog-snack

Repository files navigation

Prog Snack logo

GitHub last commit GitHub CI

GitHub Pages badge Vue.js badge Sass badge Conventional commits badge ESLint badge Prettier badge A11y badge Husky badge JS Doc badge Vitest badge Storybook badge

Tiny web project with big music ambition: dusting old prog albums, some known as prog gems, to make them shine beside classic albums.

Browse albums, filter them by music criteria, discover similar albums and find out who designed that cover.

This is a Vue.js v2 project bootstrapped with Vite.

See it live.

Table of contents

Prerequisites

Project setup

  1. Clone this repository
  2. Install the dependencies: npm install

Development tips

  1. Follow the Project setup instructions above
  2. Run the development server (compiles and hot-reloads): npm run dev
  3. See the local live server: http://127.0.0.1:5173/
  4. Run the storybook server (compiles and hot-reloads): npm run storybook
  5. See the local live storybook server: http://localhost:6006/
  • Prettify files: npm run prettify
  • Lint files: npm run lint
  • Run unit and component tests: npm run test:unit
  • Build for production: npm run build

Workflow

The workflow is currently very basic. There are three main branches: /master, /dev and /gh-pages. Code updates are done in /dev, pull requests from /dev to /master and deployment from /master to /gh-pages on each /master update.

Guidelines

This project is heavily influenced by SMACSS and BEM, and uses Vue option API. It relies on ESLint for linting, Prettier coupled with EditorConfig for formatting, Conventional Commits for commit structuration ; all of which triggered on pre-commit hooks with Husky and lint-staged.

Documentation

Vue

Style

Lint

Automation

Assets

Test

To do

Since Vue 2.7 migration from 2.6

  • Fix wrapper.emitted() empty result
  • Fix tsc broken config

Infra

This project would benefit from several implementations, which are planned for the future, such as:

  • Design system consolidation
  • Accessibility (aria, contrast)
  • Branch CLI and protections
  • Automated versioning, releases, tags and changelogs
  • Unit, UI and E2E tests
  • External DB and DAO

Features

This project is far from being done even though the 1000 albums milestone has been reached. It still needs:

  • The remaining Prog-related albums (~9000 albums, including albums that are impossible to listen to entirely on the web)
  • Some more criteria
  • A Discogs/Youtube/Spotify/Deezer search API for album titles and artists
  • Other features that I haven't thought of yet