Coder Social home page Coder Social logo

walachewaka / open-record-pool Goto Github PK

View Code? Open in Web Editor NEW
11.0 4.0 0.0 3.89 MB

A self-hosted DJ record-pool

License: GNU General Public License v3.0

Dockerfile 6.24% Python 47.06% JavaScript 12.25% HTML 1.34% Vue 30.29% Shell 2.81%
metadata music ai bootstrap cuda docker docker-compose elasticsearch fastapi html5

open-record-pool's Introduction

logo License Docker Pulls Discord Chat

Open-Record-Pool

Open-Record-Pool is a self-hosted open-source web app that allows users and more importantly DJs with large collections to keep track of their library in a structured manner. This tool can be used to dynamically create playlists using Spotify’s API, manage song metadata with the help of Mutagen, manage user’s access to your library but also share your playlists with others.

Getting Started

Features

  • Analyze ID3 metadata from specified music library
  • Edit ID3 metadata from individual tracks or batches
  • Built-in file manager
  • Rapid indexing & search reaults with ElasticSearch
  • Built-in web player
  • Filter results by BPM, Genre, Album, Key, Artist, Date Added, Remix vs Original
  • Automatic detection of new additions to collection
  • Simple import management for new tracks
  • Individual song downloads & batch downloads
  • History section to keep track of previously downloaded songs
  • Create personal playlists or public playlists to share with others
  • Export playlists as M3U
  • Dynamic playlists based of Spotify’s API – auto populate playlists with songs from personal collection to match those of Spotify’s
  • AI generated playlists based off user listening history
  • Statistics for songs; listening time, times played, most downloaded, liked, shared, least listened to
  • Simple UI
  • Quick installation through Docker-Compose

License

open-record-pool's People

Contributors

aalex avatar walachewaka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

open-record-pool's Issues

Allow one user to be admin

Allow one user to be admin, so that they can have more priviledges than the other users. (for example, being able to see the list of songs we have on the host!)

Question: Do we need admin users in the 0-POC phase?

(frontend) npx vue-cli-service serve: 404 not found

When running inside Docker Compose:

> [email protected] serve
> npx vue-cli-service serve
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/vue-cli-service - Not found
npm ERR! 404
npm ERR! 404  'vue-cli-service@latest' is not in this registry.
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

Search a song in the library

Search a song in the library

Criteria

  • I can enter a free text in a text field
  • Clicking on a submit button filters search results so that their title or any of their tags loosely fits the text I've entered.

401 Unauthorized response for POST /login

401 Unauthorized response for POST /login

Backend logs:
"POST /login HTTP/1.1" 401 Unauthorized

Frontend logs:
POST http://localhost:5000/login 401 (Unauthorized)

Registration errors should be displayed to the user

Registration errors should be displayed to the user.

Sometimes, registration fails because there is already another user with the same name, or because of CORS errors. Currently, we don't display any error message to the user when one of these scenarios happen. We should display some error message to the user when a registration error happens, or when we cannot reach the backend.

Provide the SQL credentials for the database administration tool

Provide the SQL credentials for the database administration tool, so that we don't have to type in the database credentials when we want to administer it using the web UI.

Technical details

Use PHPMyAdmin with credentials as a database administration tool
So that we don't have to type the credentials.

Run the SQL migrations when we start Docker Compose

Run the SQL migrations when we start Docker Compose, so that we don't need to run it manually.

For now, we need to:

    1. start docker compose
    1. run the SQL migration tool

It would be easier for the user, and less error-prone if we had only the step 1 to do.

Basic project setup

Basic project setup

Criteria

  • with Python 3, FastAPI, Jinja2, Docker Compose, PostgreSQL, Vue.js 3, Bootstrap, Tortoise ORM

Download a song

Download a song

Criteria

  • Each song has a download link next to it.
  • Clicking on the download link downloads the song to the Web client.

Continue listening to a song while navigating

Continue listening to a song while navigating

Criteria

  • The audio playback controls are always visible at the bottom of the Web page.
  • I can see the title of the song that is playing and its duration.
  • Pressing pause pauses the playback.
  • Pressing play next to a song changes the current song and starts playing it.
  • I can see how much of the song has elapsed. (MM:SS)

Configure the CORS allowed origin hosts easily

As a user I need to be able to configure the CORS allowed origin hosts easily, so that I can access the service from the computer of my choice.

Criteria

  • An environment variable could do it. (?)

Questions

  • Should we allow any origin?
  • Are env vars the best way to go?

Unable to mount volume in docker-compose.yml

Expected result:

  • mount _data volume to docker container - relaying local volume to container volume

Current error:

  • Error response from daemon: "error while mounting volume '/var/snap/docker/common/var-lib-docker/volumes/open-record-pool_music-data/_data': failed to mount local volume: mount /tmp/music:/var/snap/docker/common/var-lib-docker/volumes/open-record-pool_music-data/_data, flags: 0x1000: no such file or directory"

Listen to the sample of a song

Listen to the sample of a song

Criteria

  • Each song has a play button next to it.
  • Clicking on the play button plays the song.
  • We use an HTML 5 player to play the song.

Log out

Log out

Criteria

  • Clicking on the "Log out" link logs me out.
  • The client then forgets the JWT token, and the server invalidates it.

Build the frontend for production and serve with NGINX

Build the frontend for production and serve with NGINX, so that the frontend is faster and doesn't create root-owned files in our local filesystem.

Note that the development build is not optimized.

frontend_1 | To create a production build, run npm run build.

Publish a single Docker image for the whole app

Publish a single Docker image for the whole app

Criteria

  • Put both frontend and backend in a single Docker image
  • Publish it
  • It should be easy to deploy
  • The database migration should be included.

Technical details

See radarr or sonarr: it pulls the image from Github directly:

---
version: "2.1"
services:
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /path/to/data:/config
      - /path/to/tvseries:/tv #optional
      - /path/to/downloadclient-downloads:/downloads #optional
    ports:
      - 8989:8989

Check the Python code with black

Check the Python code with black, so that we minimize the risks of introducing poor-quality code.

Criteria

  • Check the Python code with black
  • Setup an acceptable coding style with black
  • Run it when we build the Docker image
  • Document how to run it when we are a developer - in CONTRIBUTING.md

Notes

black is a python package for checking the Python source code. https://black.readthedocs.io/en/stable/

View the list of all songs

View the list of all songs

Criteria

  • View the list of all songs in the library (only the first 300)
  • I can see details listed below about each song.

Technical details

  • A background task parses the data for all the songs and stores it to the database.

Details about each song

  • Title
  • Artist
  • BPM
  • Genre
  • Album
  • Key
  • Tags
  • Other fields:
    • Remix vs Original

It should not be possible to access the backend from another host if localhost CORS are set

It should not be possible to access the backend from another host if localhost CORS are set.

Questions

  • How can we reproduce this bug?
    Simply go to the ip adress of the specified machine from another machine and the service is available.

  • Expected Behavior
    Services bind to localhost, refusing connections from all other ip adresses except itself unless specified

Log in

Log in

Criteria

  • A login form allows me to fill up my email and password
  • If my email and password match those of an existing user, I can log in as them.
  • The credentials (email and password) of the first user is configured via Docker Compose environment variables.
  • Once I am logged in, I can see the email of the user at the top right of the window, plus a "Log out" link.
  • Once logged in, a JWT token is stored on the client.

Fix the npm warnings in the frontend

Fix the npm warnings in the frontend

If we fix #17, it might fix this.

Warnings

There are lots of warnings:

npm WARN deprecated [email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated [email protected]: older versions vulnerable to prototype pollution
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: 3.x is no longer supported
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: This loader has been deprecated. Please use eslint-webpack-plugin
npm WARN deprecated [email protected]: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: Switch to 'npm install joi'
npm WARN deprecated @hapi/[email protected]: Moved to 'npm install @sideway/address'
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies

Fix the eslint warnings in the frontend

Fix the eslint warnings in the frontend

Warnings

There are lots of warnings:

frontend_1  | /app/src/App.vue
frontend_1  |   5:19  warning  Expected a space before '/>', but not found  vue/html-closing-bracket-spacing
frontend_1  | 
frontend_1  | ✖ 1 problem (0 errors, 1 warning)
frontend_1  |   0 errors and 1 warning potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/components/NavBar.vue
frontend_1  |    5:33   warning  'href' should be on a new line                                                         vue/max-attributes-per-line
frontend_1  |    6:40   warning  'type' should be on a new line                                                         vue/max-attributes-per-line
frontend_1  |    6:54   warning  'data-bs-toggle' should be on a new line                                               vue/max-attributes-per-line
frontend_1  |    6:80   warning  'data-bs-target' should be on a new line                                               vue/max-attributes-per-line
frontend_1  |    6:113  warning  'aria-controls' should be on a new line                                                vue/max-attributes-per-line
frontend_1  |    6:144  warning  'aria-expanded' should be on a new line                                                vue/max-attributes-per-line
frontend_1  |    6:166  warning  'aria-label' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |    7:11   warning  Require self-closing on HTML elements (<span>)                                         vue/html-self-closing
frontend_1  |    9:47   warning  'id' should be on a new line                                                           vue/max-attributes-per-line
frontend_1  |    9:47   warning  Attribute "id" should go before "class"                                                vue/attributes-order
frontend_1  |   10:33   warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   12:45   warning  'to' should be on a new line                                                           vue/max-attributes-per-line
frontend_1  |   12:52   warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   12:56   warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   15:45   warning  'to' should be on a new line                                                           vue/max-attributes-per-line
frontend_1  |   15:61   warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   15:70   warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   18:45   warning  'to' should be on a new line                                                           vue/max-attributes-per-line
frontend_1  |   18:59   warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   18:69   warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   21:35   warning  '@click' should be on a new line                                                       vue/max-attributes-per-line
frontend_1  |   24:22   warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   26:45   warning  'to' should be on a new line                                                           vue/max-attributes-per-line
frontend_1  |   26:52   warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   26:56   warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   29:45   warning  'to' should be on a new line                                                           vue/max-attributes-per-line
frontend_1  |   29:60   warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   29:68   warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   32:45   warning  'to' should be on a new line                                                           vue/max-attributes-per-line
frontend_1  |   32:57   warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   32:63   warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  | 
frontend_1  | ✖ 31 problems (0 errors, 31 warnings)
frontend_1  |   0 errors and 26 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/views/Dashboard.vue
frontend_1  |    5:7   warning  Disallow self-closing on HTML void elements (<hr/>)                                    vue/html-self-closing
frontend_1  |    5:10  warning  Expected a space before '/>', but not found                                            vue/html-closing-bracket-spacing
frontend_1  |    5:12  warning  Disallow self-closing on HTML void elements (<br/>)                                    vue/html-self-closing
frontend_1  |    5:15  warning  Expected a space before '/>', but not found                                            vue/html-closing-bracket-spacing
frontend_1  |    9:30  warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   10:11  warning  Disallow self-closing on HTML void elements (<input/>)                                 vue/html-self-closing
frontend_1  |   10:30  warning  'name' should be on a new line                                                         vue/max-attributes-per-line
frontend_1  |   10:43  warning  'v-model' should be on a new line                                                      vue/max-attributes-per-line
frontend_1  |   10:43  warning  Attribute "v-model" should go before "name"                                            vue/attributes-order
frontend_1  |   10:64  warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   13:32  warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   14:11  warning  Require self-closing on HTML elements (<textarea>)                                     vue/html-self-closing
frontend_1  |   16:13  warning  Attribute "v-model" should go before "name"                                            vue/attributes-order
frontend_1  |   20:31  warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   20:55  warning  Expected 1 line break after opening tag (`<button>`), but no line breaks found         vue/singleline-html-element-content-newline
frontend_1  |   20:61  warning  Expected 1 line break before closing tag (`</button>`), but no line breaks found       vue/singleline-html-element-content-newline
frontend_1  |   24:5   warning  Disallow self-closing on HTML void elements (<br/>)                                    vue/html-self-closing
frontend_1  |   24:8   warning  Expected a space before '/>', but not found                                            vue/html-closing-bracket-spacing
frontend_1  |   24:10  warning  Disallow self-closing on HTML void elements (<br/>)                                    vue/html-self-closing
frontend_1  |   24:13  warning  Expected a space before '/>', but not found                                            vue/html-closing-bracket-spacing
frontend_1  |   28:7   warning  Disallow self-closing on HTML void elements (<hr/>)                                    vue/html-self-closing
frontend_1  |   28:10  warning  Expected a space before '/>', but not found                                            vue/html-closing-bracket-spacing
frontend_1  |   28:12  warning  Disallow self-closing on HTML void elements (<br/>)                                    vue/html-self-closing
frontend_1  |   28:15  warning  Expected a space before '/>', but not found                                            vue/html-closing-bracket-spacing
frontend_1  |   31:36  warning  ':key' should be on a new line                                                         vue/max-attributes-per-line
frontend_1  |   31:51  warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   32:29  warning  'style' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |   37:77  warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   37:81  warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   41:11  warning  Disallow self-closing on HTML void elements (<br/>)                                    vue/html-self-closing
frontend_1  |   41:14  warning  Expected a space before '/>', but not found                                            vue/html-closing-bracket-spacing
frontend_1  |   67:3   warning  The "computed" property should be above the "created" property on line 64              vue/order-in-components
frontend_1  | 
frontend_1  | ✖ 32 problems (0 errors, 32 warnings)
frontend_1  |   0 errors and 28 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/views/EditNote.vue
frontend_1  |    4:5   warning  Disallow self-closing on HTML void elements (<hr/>)                               vue/html-self-closing
frontend_1  |    4:8   warning  Expected a space before '/>', but not found                                       vue/html-closing-bracket-spacing
frontend_1  |    4:10  warning  Disallow self-closing on HTML void elements (<br/>)                               vue/html-self-closing
frontend_1  |    4:13  warning  Expected a space before '/>', but not found                                       vue/html-closing-bracket-spacing
frontend_1  |    8:28  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |    9:9   warning  Disallow self-closing on HTML void elements (<input/>)                            vue/html-self-closing
frontend_1  |    9:28  warning  'name' should be on a new line                                                    vue/max-attributes-per-line
frontend_1  |    9:41  warning  'v-model' should be on a new line                                                 vue/max-attributes-per-line
frontend_1  |    9:41  warning  Attribute "v-model" should go before "name"                                       vue/attributes-order
frontend_1  |    9:62  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   12:30  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   13:9   warning  Require self-closing on HTML elements (<textarea>)                                vue/html-self-closing
frontend_1  |   15:11  warning  Attribute "v-model" should go before "name"                                       vue/attributes-order
frontend_1  |   19:29  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   19:53  warning  Expected 1 line break after opening tag (`<button>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   19:59  warning  Expected 1 line break before closing tag (`</button>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   28:11  warning  Prop "id" should define at least its type                                         vue/require-prop-types
frontend_1  |   40:3   warning  The "computed" property should be above the "created" property on line 37         vue/order-in-components
frontend_1  | 
frontend_1  | ✖ 18 problems (0 errors, 18 warnings)
frontend_1  |   0 errors and 14 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/views/Home.vue
frontend_1  |   5:28  warning  'id' should be on a new line                                                 vue/max-attributes-per-line
frontend_1  |   6:22  warning  Expected 1 line break after opening tag (`<p>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   6:76  warning  Expected 1 line break before closing tag (`</p>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  | 
frontend_1  | ✖ 3 problems (0 errors, 3 warnings)
frontend_1  |   0 errors and 3 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/views/Login.vue
frontend_1  |    5:31  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |    6:9   warning  Disallow self-closing on HTML void elements (<input/>)                            vue/html-self-closing
frontend_1  |    6:28  warning  'name' should be on a new line                                                    vue/max-attributes-per-line
frontend_1  |    6:44  warning  'v-model' should be on a new line                                                 vue/max-attributes-per-line
frontend_1  |    6:44  warning  Attribute "v-model" should go before "name"                                       vue/attributes-order
frontend_1  |    6:68  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |    9:31  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   10:9   warning  Disallow self-closing on HTML void elements (<input/>)                            vue/html-self-closing
frontend_1  |   10:32  warning  'name' should be on a new line                                                    vue/max-attributes-per-line
frontend_1  |   10:48  warning  'v-model' should be on a new line                                                 vue/max-attributes-per-line
frontend_1  |   10:48  warning  Attribute "v-model" should go before "name"                                       vue/attributes-order
frontend_1  |   10:72  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   12:29  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   12:53  warning  Expected 1 line break after opening tag (`<button>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   12:59  warning  Expected 1 line break before closing tag (`</button>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  | 
frontend_1  | ✖ 15 problems (0 errors, 15 warnings)
frontend_1  |   0 errors and 11 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/views/Note.vue
frontend_1  |    8:70  warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |    8:94  warning  Expected 1 line break after opening tag (`<router-link>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |    8:98  warning  Expected 1 line break before closing tag (`</router-link>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |    9:40  warning  'class' should be on a new line                                                        vue/max-attributes-per-line
frontend_1  |    9:40  warning  Attribute "class" should go before "@click"                                            vue/attributes-order
frontend_1  |    9:66  warning  Expected 1 line break after opening tag (`<button>`), but no line breaks found         vue/singleline-html-element-content-newline
frontend_1  |    9:72  warning  Expected 1 line break before closing tag (`</button>`), but no line breaks found       vue/singleline-html-element-content-newline
frontend_1  |   19:11  warning  Prop "id" should define at least its type                                              vue/require-prop-types
frontend_1  |   28:3   warning  The "computed" property should be above the "created" property on line 20              vue/order-in-components
frontend_1  | 
frontend_1  | ✖ 9 problems (0 errors, 9 warnings)
frontend_1  |   0 errors and 7 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/views/Profile.vue
frontend_1  |    4:5   warning  Disallow self-closing on HTML void elements (<hr/>)                               vue/html-self-closing
frontend_1  |    4:8   warning  Expected a space before '/>', but not found                                       vue/html-closing-bracket-spacing
frontend_1  |    4:10  warning  Disallow self-closing on HTML void elements (<br/>)                               vue/html-self-closing
frontend_1  |    4:13  warning  Expected a space before '/>', but not found                                       vue/html-closing-bracket-spacing
frontend_1  |    8:43  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |    8:43  warning  Attribute "class" should go before "@click"                                       vue/attributes-order
frontend_1  |    8:67  warning  Expected 1 line break after opening tag (`<button>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |    8:81  warning  Expected 1 line break before closing tag (`</button>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  |   20:3   warning  The "computed" property should be above the "created" property on line 17         vue/order-in-components
frontend_1  | 
frontend_1  | ✖ 9 problems (0 errors, 9 warnings)
frontend_1  |   0 errors and 8 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | Module Warning (from ./node_modules/eslint-loader/index.js):
frontend_1  | 
frontend_1  | /app/src/views/Register.vue
frontend_1  |    5:31  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |    6:9   warning  Disallow self-closing on HTML void elements (<input/>)                            vue/html-self-closing
frontend_1  |    6:28  warning  'name' should be on a new line                                                    vue/max-attributes-per-line
frontend_1  |    6:44  warning  'v-model' should be on a new line                                                 vue/max-attributes-per-line
frontend_1  |    6:44  warning  Attribute "v-model" should go before "name"                                       vue/attributes-order
frontend_1  |    6:68  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |    9:32  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   10:9   warning  Disallow self-closing on HTML void elements (<input/>)                            vue/html-self-closing
frontend_1  |   10:28  warning  'name' should be on a new line                                                    vue/max-attributes-per-line
frontend_1  |   10:45  warning  'v-model' should be on a new line                                                 vue/max-attributes-per-line
frontend_1  |   10:45  warning  Attribute "v-model" should go before "name"                                       vue/attributes-order
frontend_1  |   10:70  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   13:31  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   14:9   warning  Disallow self-closing on HTML void elements (<input/>)                            vue/html-self-closing
frontend_1  |   14:32  warning  'name' should be on a new line                                                    vue/max-attributes-per-line
frontend_1  |   14:48  warning  'v-model' should be on a new line                                                 vue/max-attributes-per-line
frontend_1  |   14:48  warning  Attribute "v-model" should go before "name"                                       vue/attributes-order
frontend_1  |   14:72  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   16:29  warning  'class' should be on a new line                                                   vue/max-attributes-per-line
frontend_1  |   16:53  warning  Expected 1 line break after opening tag (`<button>`), but no line breaks found    vue/singleline-html-element-content-newline
frontend_1  |   16:59  warning  Expected 1 line break before closing tag (`</button>`), but no line breaks found  vue/singleline-html-element-content-newline
frontend_1  | 
frontend_1  | ✖ 21 problems (0 errors, 21 warnings)
frontend_1  |   0 errors and 15 warnings potentially fixable with the `--fix` option.
frontend_1  | 
frontend_1  | 
frontend_1  | You may use special comments to disable some warnings.
frontend_1  | Use // eslint-disable-next-line to ignore the next line.
frontend_1  | Use /* eslint-disable */ to ignore all warnings in a file.
frontend_1  | <s> [webpack.Progress] 100% 

Update Vue.js to Vue 3

Update Vue.js to Vue 3, so that we use the latest technologies, not the soon-to-be deprecated ones.

Vue 3 became the default version of Vue.js on Monday, February 7, 2022.

Eliminate song duplicates

Eliminate song duplicates

Criteria

  • When we parse a song file, the system avoids to insert the song's details if they match another song that we already have.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.