bobalazek/web-application-starter-kit

This package is abandoned and no longer maintained. No replacement package was suggested.

An Web Application starter kit / boilerplate by Borut Balazek - build with Silex

Maintainers

👁 bobalazek

Package info

github.com/bobalazek/web-application-starter-kit

Type:project

pkg:composer/bobalazek/web-application-starter-kit

Statistics

Installs: 68

Dependents: 0

Suggesters: 0

Stars: 8

Open Issues: 0

3.2.1 2018-02-02 12:31 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT b64efaced132a8e117d1ef5c64ef17277484bc04


README

Web Application Starter Kit

👁 Build Status
👁 Latest Stable Version
👁 Total Downloads
👁 License
👁 Scrutinizer Code Quality
👁 SensioLabsInsight

Important note: With the release of SF4, the Symfony team has decided to retire Silex. This means, it will not support any new SF4 features anymore. So from now on, I suggest using the new SF4 for long-term projects, as I will not be able to add any new (SF4) features to this boilerplate/starter kit. However, I may prepare a similar starter kit for SF4 in the near future, so stay tuned.

A simple web application boilerplate for small or mid scale applications. Included:

  • Users system
    • Login
    • Logout
    • Register
    • Reset password
    • Basic profile
    • Settings / edit profile
    • Change password
  • Basic user roles system - ability to assign roles for each user
  • Administration
    • Users
      • View
      • Edit
      • Switch / impersonate
      • Remove
    • User actions
    • Posts
  • Tools
    • Email preview - you are able to view the email templates while working on them (without the need of sending test emails to yourself for every change)
    • Database backup - backup and restore your database schema
  • Errors / exceptions tracking - save the exceptions / errors directly to the database and / or send emails when an error happened
  • Statistics
  • Settings

Requirements & Tools & Helpers

Setup / Development

  • Navigate your your web directory: cd /var/www
  • Create a new project: composer create-project bobalazek/web-application-starter-kit myapp --no-scripts
  • Navigate inside the application cd myapp
  • Configure database (and maybe other stuff if you want) - copy/clone app/configs/global-local.example.php into app/configs/global-local.php and set the config there. Alternatively, you can also do the same with .env.example, if you only want to change the basics (database configuration & environment).
  • Run the following commands:
    • composer install
    • bin/console orm:schema-tool:update --force (to install the database schema)
    • bower update (to install the front-end dependencies - you will need to install Bower first - if you haven't already)
    • bin/console application:database:hydrate-data (to hydrate some data)
  • You are done! Start developing!

Database

  • We use the Doctrine database
  • Navigate to your project directory: cd /var/www/myapp
  • Check the entities: bin/console orm:info (optional)
  • Update the schema: bin/console orm:schema-tool:update --force
  • Database updated!

Deployment

  • We use Deployer
  • Set your configuration inside deployer/config.php and deployer/hosts.php
  • Run dep deploy qa (or whatever environment you want)
  • The app was deployed to your server!

Application name

You should replace the name for your actual application inside the following files:

  • README.md
  • bower.json
  • composer.json
  • phpunit.xml
  • app/configs/global.php

Administrator login

With the bin/console application:database:hydrate-data command, you will, per default hydrate 2 users (which you can change inside the app/fixtures/users.php file):

  • Admin User (with admin permissions)
    • Username: admin or admin@myapp.com
    • Password: test
  • Test User (with the default user permissions)
    • Username: test or test@myapp.com
    • Password: test

Commands

  • bin/console application:environment:prepare - Will create the global-local.php and development-local.php files (if they do not exist)
  • bin/console application:database:hydrate-data [-r|--remove-existing-data] - Will hydrate the tables with some basic data, like: 2 users and 6 roles (the --remove-existing-data flag will truncate all tables before re-hydrating them)
  • bin/console application:storage:prepare - Will prepare all the storage (var/) folders, like: cache, logs, sessions, etc.
  • bin/console application:translations:prepare - Prepares all the untranslated string into a separate (app/locales/{locale}/messages_untranslated.yml) file. Accepts an locale argument (defaults to 'en_US' - usage: bin/console application:translations:prepare --locale de_DE or bin/console application:translations:prepare -l de_DE )

Other commands

  • php-cs-fixer fix . - if you want your code fixed before each commit. You will need to install PHP Coding Standards Fixer
  • bin/simple-phpunit - run your PHPUnit tests

Modules / Components

In case you want to create a new component / module in this system, do the following (in this case, the posts inside the members area):

File structure

  • app/
    • configs/ => All basic config stuff (+ validation)
    • core/ => The core files such as providers, routes, middlewares and definitions
    • fixtures/ => Used for hydrating the database
    • locales/ => Used for translations
    • templates/ => All twig templates
  • bin/
    • console
  • src/
    • Application/
      • Command/
      • Controller/
      • ControllerProvider/
      • Doctrine/ => Some Doctrine fixes for Silex
      • Entity/ => All entities / models
      • Form/
      • Provider/
      • Repository/
      • Tool/
      • Twig/
  • web/
    • assets/
      • images/
      • javascripts/
      • uploads/ => Used for uploads
      • vendor/ => Bower dependencies
    • index.php

Preview

Login

👁 Dashboard preview

Register

👁 Dashboard preview

Reset password

👁 Dashboard preview

Dashboard

👁 Dashboard preview

Profile

👁 Profile preview

Profile settings

👁 Profile settings preview

Statistics

👁 Statistics preview

Users

👁 Users preview

Users edit

👁 Users edit preview

License

Web Application Starter Kit is licensed under the MIT license.