Giter Club home page Giter Club logo

musicall's Introduction

codecov

MusicAll is a platform where people can share videos, articles, courses, search musicians or band and talk with them.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development.

This project use:

  • PHP 8.2
  • Symfony 7.0
  • MariaDB version 10.6
  • node 20
  • VueJS 2.7

Installing

Setup local https

The application need to be run in HTTPS (for Facebook logins for instance) Go to the root project, then launch :

./bin/create_ssl_ca
./bin/create_ssl_cert musicall.local

You will only need to run this once

Setup Docker

You will need Docker to run this project. Follow the Docker installation guide (https://docs.docker.com/get-docker/) to have it on your environment.

Go in the project root and run

docker compose up -d

It will pull and build all the required images to run MusicAll

If you need to rebuild image (after an update for instance)

docker compose up --build

Setup the project

Add musicall.local and musicall.test to your /etc/hosts

10.200.200.2 	musicall.local musicall.test

Install PHP vendor

docker compose run --rm php-musicall composer install

You will have to initialize your JWT configuration.
Follow the instructions here (only "Generate the SSH keys" part) : https://github.com/lexik/LexikJWTAuthenticationBundle/blob/2.x/Resources/doc/index.rst#generate-the-ssl-keys
Note: you will have to run some php command inside docker (eg: docker compose run --rm php-musicall bin/console lexik:jwt:generate-keypair)

Configure you .env.local file (I only put important values here) :

APP_ENV=dev
APP_SECRET=thisissecretchangeit
DATABASE_URL=mysql://user:[email protected]:3306/musicall
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=thepassphrase

Migrations

Run the migrations to have the latest database schema change. Do it every time before working on a MR.

Run the migrations

docker compose run --rm php-musicall bin/console doctrine:migration:migrate

Assets

You can either run everything through the docker or in your local by installation node via NVM Install JS deps

docker compose run --rm node npm ci 
# or 
npm ci

Start the assets watcher

docker compose run --rm node npm run dev
# or
npm run dev

Or simply build

docker compose run --rm node npm run build
# or
npm run build

You can now access https://musicall.local

Learn how to use the application.

TODO

  • Create fixtures
  • Https

musicall's People

Contributors

cryde avatar srekcud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

musicall's Issues

Fix the readme

There is a dead link in the readme into the JWT section , so it's impossible to install and use the repo on local

Be able to remove a musician announce

Right now it is impossible for an user who created a musician announce to delete one. (example : if they find the musician or made a typo)

The entity : src/Entity/Musician/MusicianAnnounce.php

We should create an APIP endpoint to remove an announce and add a button that will call it (it can be done separately)

Conditions :

  • only register & logged user can remove an announce
  • you can only remove your own announce

Fix readme order

The readme should make the composer install before the JWT configuration because it's not working in the current order

Avoid send mail on each message sent

We should probably send a message (in queuing ctx) to a queue to notify user (but with a delay)
If the message (in musicall ctx) is not marked as "read" then we send the notification by email to the user

Créer une API pour contact les admin du site

Actuellement MusicAll ne dispose pas de page de contact.
Dans un 1er temps il faudrait créer l'api pour permettre cela. les message ne doivent pas être persisté.

  • email
  • sujet
  • message

Handle pinned topic

Let admin "pin" topic & display pinned topic first on the list
The pinned topic should have a dedicated icon to let users know that this topic is pinned

server:start command not found

docker compose run --rm php-musicall bin/console server:start

                                          
  Command "server:start" is not defined.  
                                          
  Did you mean one of these?              
      server:dump                         
      server:log                          
                                          

2023-01-28T13:38:16+00:00 [info] User Deprecated: Since symfony/console 6.1: Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "Symfony\Component\Console\Attribute\AsCommand" attribute to the "Vich\UploaderBundle\Command\MappingDebugClassCommand" class instead.
2023-01-28T13:38:16+00:00 [info] User Deprecated: Since symfony/console 6.1: Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "Symfony\Component\Console\Attribute\AsCommand" attribute to the "Vich\UploaderBundle\Command\MappingDebugCommand" class instead.
2023-01-28T13:38:16+00:00 [info] User Deprecated: Since symfony/console 6.1: Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "Symfony\Component\Console\Attribute\AsCommand" attribute to the "Vich\UploaderBundle\Command\MappingListClassesCommand" class instead.
2023-01-28T13:38:16+00:00 [info] User Deprecated: Since symfony/console 6.1: Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "Symfony\Component\Console\Attribute\AsCommand" attribute to the "Gesdinet\JWTRefreshTokenBundle\Command\ClearInvalidRefreshTokensCommand" class instead.
2023-01-28T13:38:16+00:00 [info] User Deprecated: Since symfony/console 6.1: Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "Symfony\Component\Console\Attribute\AsCommand" attribute to the "Gesdinet\JWTRefreshTokenBundle\Command\RevokeRefreshTokenCommand" class instead.
2023-01-28T13:38:16+00:00 [info] User Deprecated: Since api-platform/core 2.7: The service "ApiPlatform\Core\Bridge\Symfony\Routing\IriConverter" is deprecated, use ApiPlatform\Symfony\Routing\IriConverter instead.
2023-01-28T13:38:16+00:00 [info] User Deprecated: Since api-platform/core 2.7: The $exceptionOnNoToken parameter in "ApiPlatform\Symfony\Security\ResourceAccessChecker::__construct()" is deprecated and will always be false in 3.0, you should stop using it.

image

Create an entity for topic where user post

This entity will contain each topics where the user post.

  • topic
  • user
  • is_read (to let user know that there are new messages)
  • creation_datetime
  • is_removed (will serve as filter in the view)

The user can remove on topic this from his list and later re-add it.

Mark topic as resolved

Sometimes when user ask question he should be able to mark topic as resolved to let people know that his question was answered

This will need a new flag "isResolved"
This will need a new button to let author (or admin) mark topic as resolved
This will need to be different in the topics list
This will need to be mark in the topic header

Création d'une entité "heure d'ouverture"

Il faudrait créer une entité (pour l'instant reliée à rien) permettant de définir des heures d'ouverture.
Grace à cette entité on pourra définir des plages d'ouverte complexe ou non.

Exemple 1 :
Ouvert tous les jours de 9h à 18h sauf le dimanche et lundi

Exemple 2 :
Ouvert tous les jours de 9h à 18h (mais fermé de 13h à 14h) sauf le dimanche et lundi

Une API exposera la création en POST
Une API exposera en GET les données d'ouvertures (ex: GET /api/schedule/2)

Je ne sais pas encore trop comment structurer ça du coup si vous avez des idées vous pouvez répondre en commentaire

Permettre la création d'un annuaire "locaux de répète"

J'aimerais qu'un utilisateur sur MusicAll ayant un local de répète à louer puisse le "partager" sur le site.

Pour la structure de données :

  • nom
  • description
  • photos
  • longitude
  • latitude
  • prix
  • horaire d'ouverture (need #220)
  • url

Si vous avez d'autre idées hésitez pas à le mettre en commentaire :)

Be able to close topic

Once the topic is closed no one can post on it

A flag already exist $isLocked in src/Entity/Forum/ForumTopic.php

The should probably go here : Processor/Forum/ForumPostPostProcessor.php:20

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.