GithubHelp home page GithubHelp logo

mohamedxi / symbnb Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 7.74 MB

Ce projet est une installation docker compose d'un projet Symfony (Formation sur les fondamentaux) pour un site utilisant Nginx comme serveur web, MariaDB comme base de données et Adminer.

JavaScript 2.70% PHP 3.60% Dockerfile 0.16% Shell 0.08% SCSS 88.78% Twig 4.69%

symbnb's Introduction

Symbnb

Ce projet est une installation docker compose d'un projet Symfony (Formation sur les fondamentaux) pour un site utilisant Nginx comme serveur web, MariaDB comme base de données et Adminer.

Qu'est ce que Symbnb ?

Symbnb est site reprenant les principales fonctionnalités de Airbnb.
Les fonctionnalités présentes dans le projet sont donc les suivantes :

  • S'inscrire, s'authentifier et gérer son compte
  • Créer des annonces afin de mettre en location un appartement ou une maison
  • Réserver un appartement ou une maison
  • Commenter et noter l'annonce après une location

Table des matières

Lancer le projet

NOTE : Supposons que tu es à la racine du projet. (PWD == ./symbnb)

Il faut lancer le projet et y accéder. Pour cela tape juste la commande ci-dessous dans ton terminal.

$ docker-compose up -d --build

INFO : Ajoute le --build uniqument si c'est la première fois que tu lance le projet ou si tu as fait des changement dans le fichier Dockerfile.
L'argument --build t'évite de taper deux commande à asuite, comme ceci : docker-compose build puis docker-compose up -d.

Après quelques instants, tu devrais voir le site en cours d'exécution à http://localhost:8050/.

Installer le projet

Une fois que les containers sont lancés, il faut que tu installes le projet.
Suit les étapes suivantes pour intaller le projet.

  • Accéder au container php : $ docker-compose exec php bash
  • Installer les dépendances php : $ composer install
  • Installer les dépendances js et css : $ yarn install puis $ yarn encore dev
  • Faire les migrations dans des entités : $ bin/console doctrine:schema:update --force
  • Jouer les fixtures pour les fausses données : $ bin/console doctrine:fixtures:load -n

Accès Admin

Le projet contient également un espace d'administration.
Tu peux y accéder avec cette URL : http://localhost:8050/admin

Un fake user est disponible pour se connecter entant que user du front et du back :
User : [email protected]
Password : password

Le configuration

.env

Un fichier .env a été inclus pour définir plus facilement les variables de docker-compose sans avoir à modifier le fichier docker-compose.yml lui-même.

Si jamais tu veux modifier les valeurs du fichier .env pour faire des tests, duplique le fichier et renomme-le, comme : .env.test ou .env.local

Le fichier .env se trouve à la racine du projet (PWD == ./symbnb).

# PHP/nginx
SERVER_NAME=localhost
TIMEZONE=Europe/Paris
MAX_EXECUTION_TIME=60

# MySQL
MYSQL_ROOT_PASSWORD=dbrootpw
MYSQL_DATABASE=symbnb
MYSQL_USER=symbnb
MYSQL_PASSWORD=symbnbpw
MYSQL_HOST=database

## /DOCKER

Aussi, un deuxième fichier .env existe dans le dossier PWD == ./symbnb/app/ de projet, celui est contient principalement les variables liées à Symfony.

La structure du projet

Dans le projet tu retrouveras les repertoires ci-dessous, ils constituent le projet lui-même.

  • app: Les fichiers et répertoires liés à Symfony
  • docker: Les répertoires des images et logs docker
    • docker/admin: Le fichier Dockerfile de Adminer
    • docker/logs/nginx: Les fichiers journaux de Nginx (error.log, access.log)
    • docker/nginx: Les fichiers de configuration de NGINX et Dockerfile
    • docker/php-fpm: Le fichier Dockerfile de PHP-FPM

Configuration optionnelle

Environment Variables

Les principales variables d'environnement.

  • SERVER_NAME: Nom du serveur (localhost)
  • TIMEZONE: Heure exacte de notre fuseau horaire (Europe/Paris)
  • MAX_EXECUTION_TIME: Temps maximum d'exécution des scripts
  • MYSQL_ROOT_PASSWORD : Mot de passe de la base de données. Par défaut 'root' est le user.
  • MYSQL_DATABASE : Nom de la base de données utilisé.
  • MYSQL_USER : Nom de l'utilisateur.
  • MYSQL_PASSWORD: Mot de passe de la base de données.
  • MYSQL_HOST: Le host pour se connecter à la base de données (database).
#docker-compose.yml

environment:
  - MYSQL_ROOT_PASSWORD=dbrootpw
  - MYSQL_DATABASE=symbnb
  - MYSQL_USER=symbnb
  - MYSQL_PASSWORD=symbnbpw

Logs des containers

Tu peux avoir besoin d'afficher les logs des différents containers. Pour cela, utilise les commandes suivantes :

Pour afficher les logs depuis la création des tous les containers :

$ docker-compose logs -f
$ docker-compose logs -f nginx # Uniquement les logs du container nginx

Pour afficher les logs créés à l'instant

$ docker-compose logs -f --tail=0
$ docker-compose logs -f --tail=0 nginx # Uniquement les logs du container nginx

Le -f permet d'afficher les logs en temps réel.

Et bien, voilà, tu peux t'amuser sur le projet avec toutes ces informations.

symbnb's People

Contributors

mohamedxi avatar

Watchers

James Cloos avatar

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.