Giter VIP home page Giter VIP logo

cinhetic's Introduction

Cinhetic Project

Project Status Scrutinizer Code Quality SensioLabsInsight

Welcome to the Cinhetic Project - a fully-functional application built in Symfony2 framework to learn this framework in 360° that you can use to handle cinematographic world!

Roadmap: Handle movies, categories of movies, tags of movies, actors, directors, cinemas, sessions, users, comments...

In some words: Minimalist features, Collaborative solution, Pragmatic and Responsive project

Demo

http://94.23.5.209/web/

Login: demo
Mdp: demo

Documentation

http://94.23.5.209/docs/

Documentation for training

http://94.23.5.209/web/apprentissage

Requirements

  • PHP >=5.3.3
  • PHPUnit ~ 3.7
  • Elastic Search running
  • PECL hash >= 1.1
  • openssl enabled

Screenshots

ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot

  1. Installing the Cinhetic Standard Edition

When it comes to installing the Cinhetic Project, you have the following options.

Use Composer (recommended)

As Symfony uses Composer to manage its dependencies, the recommended way to create a new project is to use it.

If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:

curl -s http://getcomposer.org/installer | php

Then, use the install from Composer:

php composer.phar install

Installation

Add the deps for the needed bundles

[CinheticPublicBundle]
    git=https://github.com/Symfomany/Cinhetic.git
    target=/bundles/cinhetic/

Or add CinheticPublicBundle in your composer.json

{
    "require": {
        "symfomany/cinhetic": "*"
    }
}

If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:

    curl -s https://getcomposer.org/installer | php

Next, run the vendors script to download the bundles:

$ php bin/vendors install

Add to autoload.php

$loader->registerNamespaces(array(
    'Cinhetic'             => __DIR__.'/../vendor/bundles',
    // ...

Register CinheticPublicBundle to Kernel

<?php

    # app/AppKernel.php
    //...
    $bundles = array(
        //...
        new Cinhetic\Public\CinheticPublicBundle(),
    );
    //...

Create database and schema

$ php app/console doctrine:database:create
$ php app/console doctrine:schema:create

Enable routing

# app/config/routing.yml
CinheticPublicBundle:
    resource: "@CinheticPublicBundle/Resources/config/routing.yml"

Send Email in localhost

Add configure in parameters for send email in localhost

    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: [email protected]
    mailer_password: xxxxxxx
swiftmailer:
   transport: gmail
   host:      smtp.gmail.com
   username:  "%mailer_user%"
   password:  "%mailer_password%"
   spool:     { type: memory }

And execute command line like:

    php app/console cinhetic:email [email protected] nom="Boyer Julien" message="Hello Ju!"
    or
    php app/console swiftmailer:email:send

Refresh assets

$ php app/console assets:install web/

Installation of Elastic Search

  cd ~
  sudo apt-get update
  sudo apt-get install openjdk-7-jre-headless -y

  ### Check http://www.elasticsearch.org/download/ for latest version of ElasticSearch and replace wget link below

  # NEW WAY / EASY WAY
  wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.0.deb
  sudo dpkg -i elasticsearch-1.1.0.deb

  # OLD WAY / HARD WAY
  wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.0.tar.gz
  tar -xf elasticsearch-1.1.0.tar.gz
  rm elasticsearch-1.1.0.tar.gz
  sudo mv elasticsearch-* elasticsearch
  sudo mv elasticsearch /usr/local/share

  curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
  sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
  rm -Rf *servicewrapper*
  sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
  sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch

  sudo service elasticsearch start
  #curl http://localhost:9200

Data fixtures (optional)

First, make sure that your db parameters are correctly set in app/config/parameters.ini. You'll need to install Doctrine Data Fixtures (don't forget to add the path to AppKernel.php) and then run:

$ php app/console doctrine:fixtures:load

Run Tests Codeception

bin/codecept run --html --colors --report --steps

Optional Requirements

  • Mongo DB
  • Elastic Search
  • Node JS
  • Composer
  • Symfony 2

Chapters covered in project

  • Installation & Configuration of Symfony2 Framework
  • Multi-syntax in Yaml, Xml, PHP
  • ClassLoader & PSR-0 & Composer Component
  • Installation third bundles like FOSUserBundle, KNPPaginator...
  • Routing layer
  • Doctrine ORM & DQL
  • Console CLI Generators & configuration
  • View: Twig Engine with inheritance, including, rendering, filters...
  • Controllers: CRUD, Bind with Form/Entity, Entity Manager, HTTP Methods, Request object, Flash Message, services, redirection/forward
  • Models: Annotations, Relationship (1:1;,1:n;n:m), Repositories, DQL
  • Form: Types of fields, Dependancies with Model, Validations
  • API Rest using Allocine V3 with Guzzle HTTP Framework
  • Add custom command with console component
  • Use SwiftMailer to send test email
  • Add service with Service Container
  • Implement payment solution in bundle

Features

  • Search Engine Movies
  • Top Rated Movies
  • Page Movie with complete description
  • Visibility on Movies and cover action in homepage
  • Pagination for results with "KNPPaginatorBundles"
  • Datas Fixtures with "Doctrine Fixtures"
  • Homepage with custom template by Bootsrapp Twitter
  • Form & Repositories in services
  • Add authentification & firewall administration for user connected with "FOSUserBundle"
  • Rest API for Movies(CRUD) & Categories & Author & Directors with FOSRestBundle
  • Page Category to list all movies related
  • Page Tag to list movies related by keywords
  • Page My Account related my informations
  • View all comments by movies
  • Add favorites movies in session
  • Add optional node layers (socket.io) for comment
  • Categories & Tags in cloud keywords
  • Trailers of movies in slideshow
  • Search engine in elastic search engine
  • Comments by movies with forms
  • API Rest using Allocine V3 with Guzzle HTTP Framework
  • Ajax Search instant with Allocine API
  • Add Email Decorator in service
  • Add Pre-Order for Movies in Paybox with LexikPayboxBundle

Evolution

  • Mongo for notifications & private message
  • Node layer for notifications in real time
  • Form & Controllers & Repositories in services
  • Documentation by PHPDoc
  • Advanced APIs for Mobiles Apps
  • Acceptance tests with Codeception
  • New design with Front-End/UX Developper @UnPetitLu https://twitter.com/UnPetitLu

cinhetic's People

Contributors

symfomany avatar

Watchers

 avatar  avatar

Forkers

ajbm61

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.